import { CampaignsService } from './campaigns.service';
import { Prisma } from '@prisma/client';
import { PrismaService } from '../prisma/prisma.service';
export declare class CampaignsController {
    private readonly campaignsService;
    private readonly prisma;
    constructor(campaignsService: CampaignsService, prisma: PrismaService);
    create(createCampaignDto: any, req: 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: Prisma.Decimal;
        collectedAmount: Prisma.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: Prisma.Decimal;
    }>;
    findAll(isUrgent?: string, limit?: string, status?: 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: Prisma.Decimal;
        collectedAmount: Prisma.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: Prisma.Decimal;
    }[]>;
    getTenantBySlug(slug: string): Promise<{
        campaigns: ({
            donations: {
                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: Prisma.Decimal;
                platformFee: Prisma.Decimal;
                paymentFee: Prisma.Decimal;
                netAmount: Prisma.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;
            }[];
            category: {
                id: string;
                name: string;
                slug: string;
                description: string | null;
                createdAt: Date;
                updatedAt: Date;
                icon: string | null;
                color: string | null;
                parentId: string | null;
                sortOrder: number;
                isActive: boolean;
            };
        } & {
            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: Prisma.Decimal;
            collectedAmount: Prisma.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: Prisma.Decimal;
        })[];
    } & {
        id: string;
        name: string;
        slug: string;
        description: string | null;
        logoUrl: string | null;
        coverImageUrl: string | null;
        aktaPendirian: string | null;
        npwp: string | null;
        skKemenkumham: string | null;
        email: string;
        phone: string | null;
        whatsapp: string | null;
        website: string | null;
        address: string | null;
        city: string | null;
        province: string | null;
        postalCode: string | null;
        bankName: string | null;
        bankAccountNumber: string | null;
        bankAccountName: string | null;
        status: import(".prisma/client").$Enums.TenantStatus;
        verifiedAt: Date | null;
        verifiedBy: string | null;
        rejectionReason: string | null;
        commissionRate: Prisma.Decimal;
        autoWithdraw: boolean;
        createdAt: Date;
        updatedAt: Date;
        deletedAt: Date | null;
    }>;
    findOne(slug: 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: Prisma.Decimal;
        collectedAmount: Prisma.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: Prisma.Decimal;
    }>;
    createUpdate(campaignId: string, data: any, req: any): Promise<{
        author: {
            fullName: string;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        title: string;
        imageUrl: string | null;
        campaignId: string;
        authorId: string;
        content: string;
        isPublished: boolean;
    }>;
}
