import { PrismaService } from '../prisma/prisma.service';
import { SettingsService } from '../settings/settings.service';
import { DonationsService } from '../donations/donations.service';
export declare class ZakatService {
    private readonly prisma;
    private readonly settingsService;
    private readonly donationsService;
    constructor(prisma: PrismaService, settingsService: SettingsService, donationsService: DonationsService);
    getRates(): Promise<any>;
    getSystemCampaign(type: 'ZAKAT' | 'FIDYAH'): 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;
    }>;
    calculate(data: any, userId?: string): Promise<{
        id: string;
        createdAt: Date;
        type: string;
        userId: string | null;
        sessionId: string | null;
        inputData: import("@prisma/client/runtime/library").JsonValue;
        nisabAmount: import("@prisma/client/runtime/library").Decimal | null;
        totalAssets: import("@prisma/client/runtime/library").Decimal | null;
        zakatAmount: import("@prisma/client/runtime/library").Decimal;
        isWajib: boolean | null;
        donationId: string | null;
    }>;
    checkout(data: any, donorId?: 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;
    }>;
}
