import { Repository } from 'typeorm';
import { User } from '../users/user.entity';
import { Campaign } from '../campaigns/campaign.entity';
import { Application } from '../applications/application.entity';
import { Payout } from '../payouts/payout.entity';
import { InvitationsService } from '../invitations/invitations.service';
import { TelegramService } from '../telegram/telegram.service';
import { EmailService } from '../email/email.service';
import { PayoutAccount } from '../invitations/payout-account.entity';
import { PaymentTransaction } from '../payments/payment-transaction.entity';
import { PaymentService } from '../payments/payment.service';
import { AuditLog } from './audit-log.entity';
import { NotificationsService } from '../notifications/notifications.service';
export declare class AdminService {
    private usersRepository;
    private campaignsRepository;
    private applicationsRepository;
    private payoutsRepository;
    private payoutAccountRepo;
    private paymentTransactionRepo;
    private auditLogRepo;
    private paymentService;
    private invitationsService;
    private telegramService;
    private emailService;
    private notificationsService;
    constructor(usersRepository: Repository<User>, campaignsRepository: Repository<Campaign>, applicationsRepository: Repository<Application>, payoutsRepository: Repository<Payout>, payoutAccountRepo: Repository<PayoutAccount>, paymentTransactionRepo: Repository<PaymentTransaction>, auditLogRepo: Repository<AuditLog>, paymentService: PaymentService, invitationsService: InvitationsService, telegramService: TelegramService, emailService: EmailService, notificationsService: NotificationsService);
    getAllUsers(): Promise<User[]>;
    getPendingUsers(): Promise<User[]>;
    validateUserStatus(id: string, status: string): Promise<User>;
    getAllCampaigns(): Promise<Campaign[]>;
    getAllApplications(): Promise<Application[]>;
    getAllPayouts(): Promise<any[]>;
    toggleCampaignStatus(campaignId: string, status: string): Promise<Campaign>;
    private computeCampaignEscrow;
    getBrandBalances(): Promise<any[]>;
    updatePayoutStatus(payoutId: string, status: string, actorId?: string, actorRole?: string): Promise<Payout>;
    executePayoutTransfer(payoutId: string, actorId?: string, actorRole?: string): Promise<any>;
    getAuditLogs(): Promise<AuditLog[]>;
    getStats(): Promise<{
        totalUsers: number;
        totalCampaigns: number;
        activeCampaigns: number;
        totalApplications: number;
        pendingApplications: number;
        totalPayouts: number;
        totalPayoutAmount: number;
    }>;
    createUser(email: string, password: string, role: string): Promise<any>;
    updateUser(id: string, data: any): Promise<any>;
    toggleBan(id: string): Promise<any>;
    updatePermissions(id: string, permissions: Record<string, boolean>): Promise<any>;
    deleteUser(id: string): Promise<any>;
}
