import { PrismaService } from '../prisma/prisma.service';
export declare class AdminService {
    private prisma;
    constructor(prisma: PrismaService);
    getDashboardStats(): Promise<{
        totalDonations: number;
        activeCampaigns: number;
        totalDonors: number;
        successRate: number;
    }>;
    getRecentDonations(): Promise<({
        campaign: {
            title: string;
        };
        donor: {
            fullName: string;
        } | null;
    } & {
        id: string;
        status: import(".prisma/client").$Enums.DonationStatus;
        verifiedAt: Date | null;
        verifiedBy: string | null;
        createdAt: Date;
        updatedAt: Date;
        tenantId: string;
        campaignId: string;
        paymentMethod: string | null;
        ipAddress: string | null;
        userAgent: string | null;
        invoiceNumber: string;
        donorName: string;
        donorEmail: string | null;
        donorPhone: string | null;
        donorPrayer: string | null;
        isAnonymous: boolean;
        amount: import("@prisma/client/runtime/library").Decimal;
        platformFee: import("@prisma/client/runtime/library").Decimal;
        paymentFee: import("@prisma/client/runtime/library").Decimal;
        netAmount: import("@prisma/client/runtime/library").Decimal;
        paymentChannel: string | null;
        paymentGateway: import(".prisma/client").$Enums.PaymentGateway | null;
        externalId: string | null;
        paymentUrl: string | null;
        proofUrl: string | null;
        qrCodeUrl: string | null;
        vaNumber: string | null;
        paidAt: Date | null;
        expiredAt: Date | null;
        receiptUrl: string | null;
        receiptSent: boolean;
        receiptSentAt: Date | null;
        proofImageUrl: string | null;
        proofUploadedAt: Date | null;
        isRecurring: boolean;
        referralCode: string | null;
        utmSource: string | null;
        utmMedium: string | null;
        utmCampaign: string | null;
        recurringId: string | null;
        fundraiserId: string | null;
        donorId: string | null;
    })[]>;
    getAllCampaigns(): Promise<({
        category: {
            name: string;
        };
    } & {
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    })[]>;
    getCampaignById(id: string): Promise<{
        category: {
            name: string;
        };
    } & {
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    }>;
    toggleCampaignField(id: string, field: 'isUrgent' | 'isFeatured'): Promise<{
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    }>;
    getAllDonations(): Promise<({
        campaign: {
            title: string;
        };
        donor: {
            phone: string | null;
            fullName: string;
        } | null;
    } & {
        id: string;
        status: import(".prisma/client").$Enums.DonationStatus;
        verifiedAt: Date | null;
        verifiedBy: string | null;
        createdAt: Date;
        updatedAt: Date;
        tenantId: string;
        campaignId: string;
        paymentMethod: string | null;
        ipAddress: string | null;
        userAgent: string | null;
        invoiceNumber: string;
        donorName: string;
        donorEmail: string | null;
        donorPhone: string | null;
        donorPrayer: string | null;
        isAnonymous: boolean;
        amount: import("@prisma/client/runtime/library").Decimal;
        platformFee: import("@prisma/client/runtime/library").Decimal;
        paymentFee: import("@prisma/client/runtime/library").Decimal;
        netAmount: import("@prisma/client/runtime/library").Decimal;
        paymentChannel: string | null;
        paymentGateway: import(".prisma/client").$Enums.PaymentGateway | null;
        externalId: string | null;
        paymentUrl: string | null;
        proofUrl: string | null;
        qrCodeUrl: string | null;
        vaNumber: string | null;
        paidAt: Date | null;
        expiredAt: Date | null;
        receiptUrl: string | null;
        receiptSent: boolean;
        receiptSentAt: Date | null;
        proofImageUrl: string | null;
        proofUploadedAt: Date | null;
        isRecurring: boolean;
        referralCode: string | null;
        utmSource: string | null;
        utmMedium: string | null;
        utmCampaign: string | null;
        recurringId: string | null;
        fundraiserId: string | null;
        donorId: string | null;
    })[]>;
    createCampaign(data: any): Promise<{
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    }>;
    updateCampaign(id: string, data: any): Promise<{
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    }>;
    getUser(id: string): Promise<{
        id: string;
        email: string;
        phone: string | null;
        status: import(".prisma/client").$Enums.UserStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        passwordHash: string | null;
        fullName: string;
        avatarUrl: string | null;
        role: import(".prisma/client").$Enums.UserRole;
        emailVerified: boolean;
        phoneVerified: boolean;
        twoFactorEnabled: boolean;
        twoFactorSecret: string | null;
        googleId: string | null;
        lastLoginAt: Date | null;
        lastLoginIp: string | null;
    } | null>;
    getVerifications(): Promise<({
        user: {
            email: string;
            phone: string | null;
            fullName: string;
        };
    } & {
        id: string;
        status: import(".prisma/client").$Enums.VerificationStatus;
        verifiedAt: Date | null;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        idCardNumber: string;
        idCardPhoto: string;
        selfiePhoto: string;
        notes: string | null;
    })[]>;
    updateVerificationStatus(id: string, status: 'APPROVED' | 'REJECTED', notes?: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.VerificationStatus;
        verifiedAt: Date | null;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        idCardNumber: string;
        idCardPhoto: string;
        selfiePhoto: string;
        notes: string | null;
    }>;
    getWithdrawals(): Promise<({
        user: {
            email: string;
            phone: string | null;
            fullName: string;
        };
    } & {
        id: string;
        bankName: string;
        status: import(".prisma/client").$Enums.WithdrawalStatus;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        notes: string | null;
        amount: import("@prisma/client/runtime/library").Decimal;
        proofImageUrl: string | null;
        accountNumber: string;
        accountName: string;
        processedAt: Date | null;
    })[]>;
    updateWithdrawalStatus(id: string, status: 'COMPLETED' | 'REJECTED'): Promise<{
        id: string;
        bankName: string;
        status: import(".prisma/client").$Enums.WithdrawalStatus;
        createdAt: Date;
        updatedAt: Date;
        userId: string;
        notes: string | null;
        amount: import("@prisma/client/runtime/library").Decimal;
        proofImageUrl: string | null;
        accountNumber: string;
        accountName: string;
        processedAt: Date | null;
    }>;
    deleteCampaign(id: string): Promise<{
        id: string;
        slug: string;
        description: string;
        coverImageUrl: string | null;
        status: import(".prisma/client").$Enums.CampaignStatus;
        rejectionReason: string | null;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        tenantId: string;
        createdBy: string;
        categoryId: string;
        title: string;
        shortDescription: string | null;
        type: import(".prisma/client").$Enums.CampaignType;
        targetAmount: import("@prisma/client/runtime/library").Decimal;
        collectedAmount: import("@prisma/client/runtime/library").Decimal;
        donorCount: number;
        startDate: Date;
        endDate: Date | null;
        isFeatured: boolean;
        isUrgent: boolean;
        priority: number;
        beneficiaryName: string | null;
        beneficiaryRelation: string | null;
        beneficiaryDescription: string | null;
        approvedAt: Date | null;
        approvedBy: string | null;
        rejectedAt: Date | null;
        metaTitle: string | null;
        metaDescription: string | null;
        metaKeywords: string | null;
        ogImageUrl: string | null;
        viewCount: number;
        shareCount: number;
        allowAnonymous: boolean;
        showDonorList: boolean;
        showCollectedAmount: boolean;
        minDonation: import("@prisma/client/runtime/library").Decimal;
    }>;
    getUsers(): Promise<{
        id: string;
        email: string;
        phone: string | null;
        status: import(".prisma/client").$Enums.UserStatus;
        createdAt: Date;
        _count: {
            donations: number;
            createdCampaigns: number;
        };
        fullName: string;
        role: import(".prisma/client").$Enums.UserRole;
    }[]>;
    updateUserStatus(id: string, status: any): Promise<{
        id: string;
        email: string;
        phone: string | null;
        status: import(".prisma/client").$Enums.UserStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        passwordHash: string | null;
        fullName: string;
        avatarUrl: string | null;
        role: import(".prisma/client").$Enums.UserRole;
        emailVerified: boolean;
        phoneVerified: boolean;
        twoFactorEnabled: boolean;
        twoFactorSecret: string | null;
        googleId: string | null;
        lastLoginAt: Date | null;
        lastLoginIp: string | null;
    }>;
    updateUserRole(id: string, role: any): Promise<{
        id: string;
        email: string;
        phone: string | null;
        status: import(".prisma/client").$Enums.UserStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        passwordHash: string | null;
        fullName: string;
        avatarUrl: string | null;
        role: import(".prisma/client").$Enums.UserRole;
        emailVerified: boolean;
        phoneVerified: boolean;
        twoFactorEnabled: boolean;
        twoFactorSecret: string | null;
        googleId: string | null;
        lastLoginAt: Date | null;
        lastLoginIp: string | null;
    }>;
    resetUserPassword(id: string, newPassword: string): Promise<{
        id: string;
        email: string;
        phone: string | null;
        status: import(".prisma/client").$Enums.UserStatus;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        passwordHash: string | null;
        fullName: string;
        avatarUrl: string | null;
        role: import(".prisma/client").$Enums.UserRole;
        emailVerified: boolean;
        phoneVerified: boolean;
        twoFactorEnabled: boolean;
        twoFactorSecret: string | null;
        googleId: string | null;
        lastLoginAt: Date | null;
        lastLoginIp: string | null;
    }>;
    updateDonationStatus(id: string, status: any): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.DonationStatus;
        verifiedAt: Date | null;
        verifiedBy: string | null;
        createdAt: Date;
        updatedAt: Date;
        tenantId: string;
        campaignId: string;
        paymentMethod: string | null;
        ipAddress: string | null;
        userAgent: string | null;
        invoiceNumber: string;
        donorName: string;
        donorEmail: string | null;
        donorPhone: string | null;
        donorPrayer: string | null;
        isAnonymous: boolean;
        amount: import("@prisma/client/runtime/library").Decimal;
        platformFee: import("@prisma/client/runtime/library").Decimal;
        paymentFee: import("@prisma/client/runtime/library").Decimal;
        netAmount: import("@prisma/client/runtime/library").Decimal;
        paymentChannel: string | null;
        paymentGateway: import(".prisma/client").$Enums.PaymentGateway | null;
        externalId: string | null;
        paymentUrl: string | null;
        proofUrl: string | null;
        qrCodeUrl: string | null;
        vaNumber: string | null;
        paidAt: Date | null;
        expiredAt: Date | null;
        receiptUrl: string | null;
        receiptSent: boolean;
        receiptSentAt: Date | null;
        proofImageUrl: string | null;
        proofUploadedAt: Date | null;
        isRecurring: boolean;
        referralCode: string | null;
        utmSource: string | null;
        utmMedium: string | null;
        utmCampaign: string | null;
        recurringId: string | null;
        fundraiserId: string | null;
        donorId: string | null;
    }>;
    deleteDonation(id: string): Promise<{
        id: string;
        status: import(".prisma/client").$Enums.DonationStatus;
        verifiedAt: Date | null;
        verifiedBy: string | null;
        createdAt: Date;
        updatedAt: Date;
        tenantId: string;
        campaignId: string;
        paymentMethod: string | null;
        ipAddress: string | null;
        userAgent: string | null;
        invoiceNumber: string;
        donorName: string;
        donorEmail: string | null;
        donorPhone: string | null;
        donorPrayer: string | null;
        isAnonymous: boolean;
        amount: import("@prisma/client/runtime/library").Decimal;
        platformFee: import("@prisma/client/runtime/library").Decimal;
        paymentFee: import("@prisma/client/runtime/library").Decimal;
        netAmount: import("@prisma/client/runtime/library").Decimal;
        paymentChannel: string | null;
        paymentGateway: import(".prisma/client").$Enums.PaymentGateway | null;
        externalId: string | null;
        paymentUrl: string | null;
        proofUrl: string | null;
        qrCodeUrl: string | null;
        vaNumber: string | null;
        paidAt: Date | null;
        expiredAt: Date | null;
        receiptUrl: string | null;
        receiptSent: boolean;
        receiptSentAt: Date | null;
        proofImageUrl: string | null;
        proofUploadedAt: Date | null;
        isRecurring: boolean;
        referralCode: string | null;
        utmSource: string | null;
        utmMedium: string | null;
        utmCampaign: string | null;
        recurringId: string | null;
        fundraiserId: string | null;
        donorId: string | null;
    }>;
    getAllNotifications(): Promise<({
        user: {
            fullName: string;
        };
    } & {
        data: import("@prisma/client/runtime/library").JsonValue | null;
        id: string;
        createdAt: Date;
        title: string;
        type: string;
        userId: string;
        message: string;
        channel: string;
        readAt: Date | null;
        sentAt: Date | null;
    })[]>;
    markNotificationRead(id: string): Promise<{
        data: import("@prisma/client/runtime/library").JsonValue | null;
        id: string;
        createdAt: Date;
        title: string;
        type: string;
        userId: string;
        message: string;
        channel: string;
        readAt: Date | null;
        sentAt: Date | null;
    }>;
    deleteNotification(id: string): Promise<{
        data: import("@prisma/client/runtime/library").JsonValue | null;
        id: string;
        createdAt: Date;
        title: string;
        type: string;
        userId: string;
        message: string;
        channel: string;
        readAt: Date | null;
        sentAt: Date | null;
    }>;
}
