import { BaseTenantService } from '@/common/base/service/base-crud.service';
import { TenantConnectionService } from '../tenant/tenant-connection.service';
import { ZnsCampaignRecipient } from './entities/zns-campaign-recipient.entity';
import { GetZnsMessagesDto } from './dto/get-zns-messages.dto';
import { PaginationResult } from '@/common/interfaces/pagination-result.interface';
type ZnsMessageResponse = PaginationResult<ZnsCampaignRecipient> | {
    success: boolean;
    download: true;
    filename: string;
    total: number;
    filters: GetZnsMessagesDto;
    file: Buffer;
};
export declare class ZnsCampaignReportService extends BaseTenantService<ZnsCampaignRecipient> {
    protected tenantConnectionService: TenantConnectionService;
    protected entity: typeof ZnsCampaignRecipient;
    constructor(tenantConnectionService: TenantConnectionService);
    getCampaignReport(filter: {
        oa_account_id?: string;
        template_id?: number;
        from?: Date;
        to?: Date;
    }): Promise<{
        total_report: {
            total_sent: number;
            total_success: number;
            total_failed: number;
            total_cancelled: number;
            total_charged: number;
            total_free: number;
            total_cost: number;
        };
        campaign_summary: {
            total_campaigns: number;
            pending_campaigns: number;
            queued_campaigns: number;
            processing_campaigns: number;
            process_campaigns: number;
            failed_campaigns: number;
            cancelled_campaigns: number;
        };
        spending_overview: {
            date: string;
            total_zns: any;
            total_cost: any;
        }[];
    }>;
    getZnsMessages(filter: GetZnsMessagesDto, req: any): Promise<ZnsMessageResponse>;
}
export {};
