import { AdminService } from './admin.service';
import { BillingService } from '../billing/billing.service';
import { OrganizationPlan } from '../organizations/entities/organization.entity';
import { SubscriptionStatus } from '../billing/entities/subscription.entity';
export declare class AdminController {
    private readonly adminService;
    private readonly billingService;
    constructor(adminService: AdminService, billingService: BillingService);
    getDashboardStats(): Promise<{
        totals: {
            organizations: number;
            users: number;
            campaigns: number;
            transactions: number;
            revenue: number;
        };
        thisMonth: {
            organizations: number;
            users: number;
            campaigns: number;
            revenue: number;
        };
        lastMonth: {
            revenue: number;
        };
        subscriptions: {
            active: number;
            planDistribution: any;
        };
    }>;
    getRevenueChart(days?: number): Promise<{
        date: any;
        revenue: number;
        transactions: number;
    }[]>;
    getRecentActivity(limit?: number): Promise<({
        type: string;
        title: string;
        timestamp: Date;
        data: {
            organizationId: string;
        };
    } | {
        type: string;
        title: string;
        timestamp: Date;
        data: {
            transactionId: string;
            amount: number;
        };
    } | {
        type: string;
        title: string;
        timestamp: Date;
        data: {
            campaignId: string;
            organizationName: string;
        };
    })[]>;
    getOrganizations(page?: number, limit?: number, search?: string, plan?: string, status?: string): Promise<{
        data: {
            usersCount: number;
            campaignsCount: number;
            totalRevenue: number;
            id: string;
            name: string;
            slug: string;
            email: string;
            phone: string;
            logo_url: string;
            plan: OrganizationPlan;
            plan_expires_at: Date;
            payment_code: string;
            payment_api_key: string;
            is_active: boolean;
            created_at: Date;
            updated_at: Date;
            users: import("../users/entities/user.entity").User[];
            campaigns: import("../campaigns/entities/campaign.entity").Campaign[];
            transactions: import("../transactions/entities/transaction.entity").Transaction[];
        }[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getOrganization(id: string): Promise<{
        transactions: import("../transactions/entities/transaction.entity").Transaction[];
        subscriptions: import("../billing/entities/subscription.entity").Subscription[];
        stats: {
            totalRevenue: number;
            totalVotes: number;
            usersCount: number;
            campaignsCount: number;
        };
        id: string;
        name: string;
        slug: string;
        email: string;
        phone: string;
        logo_url: string;
        plan: OrganizationPlan;
        plan_expires_at: Date;
        payment_code: string;
        payment_api_key: string;
        is_active: boolean;
        created_at: Date;
        updated_at: Date;
        users: import("../users/entities/user.entity").User[];
        campaigns: import("../campaigns/entities/campaign.entity").Campaign[];
    }>;
    updateOrganization(id: string, body: {
        name?: string;
        plan?: OrganizationPlan;
        plan_expires_at?: Date | null;
        is_active?: boolean;
    }): Promise<import("../organizations/entities/organization.entity").Organization>;
    suspendOrganization(id: string): Promise<import("../organizations/entities/organization.entity").Organization>;
    activateOrganization(id: string): Promise<import("../organizations/entities/organization.entity").Organization>;
    deleteOrganization(id: string): Promise<{
        message: string;
    }>;
    waiveSubscription(id: string, body: {
        plan: string;
        duration_months: number;
        reason?: string;
    }): Promise<{
        message: string;
        subscription: import("../billing/entities/subscription.entity").Subscription;
    }>;
    extendSubscription(id: string, body: {
        additional_months: number;
    }): Promise<{
        message: string;
        subscription: import("../billing/entities/subscription.entity").Subscription;
    }>;
    forceChangePlan(id: string, body: {
        plan: string;
        expires_at?: string;
    }): Promise<{
        message: string;
    }>;
    getAllSubscriptions(page?: number, limit?: number, status?: SubscriptionStatus, plan?: string): Promise<{
        subscriptions: import("../billing/entities/subscription.entity").Subscription[];
        total: number;
    }>;
    getPlans(): Promise<import("../billing/entities/plan.entity").Plan[]>;
    createPlan(body: any): Promise<import("../billing/entities/plan.entity").Plan>;
    updatePlan(id: string, body: any): Promise<import("../billing/entities/plan.entity").Plan>;
    deletePlan(id: string): Promise<{
        message: string;
    }>;
    sendSystemNotification(body: {
        title: string;
        message: string;
        targetPlan?: string;
    }): Promise<{
        message: string;
        count: number;
    }>;
}
