import { CreateZnsCampaignDto } from './dto/create-zns-campaign.dto';
import type { Request } from 'express';
import { ZnsCampaignService } from './zns-campaign.service';
import { ZnsCampaignQueryDto } from './dto/zns-campaign-query.dto';
import { UpdateZnsCampaignDto } from './dto/update-zns-campaign.dto';
import { ZnsReportSearchDto } from './dto/zns-report-search.dto';
import { GetZnsMessagesDto } from './dto/get-zns-messages.dto';
import { ZnsCampaignReportService } from './zns-campaign-report.service';
export declare class ZnsCampaignController {
    private readonly service;
    private readonly serviceReport;
    constructor(service: ZnsCampaignService, serviceReport: ZnsCampaignReportService);
    createCampaign(dto: CreateZnsCampaignDto, file: Express.Multer.File): Promise<{
        message: string;
        campaign_id: number;
        total: number;
    }>;
    getAll(req: Request, query: ZnsCampaignQueryDto): Promise<import("../../common/interfaces/pagination-result.interface").PaginationResult<import("./entities/zns-campaign.entity").ZnsCampaign>>;
    updateCampaign(id: number, dto: UpdateZnsCampaignDto): Promise<import("./entities/zns-campaign.entity").ZnsCampaign>;
    cancelCampaign(id: number): Promise<{
        message: string;
        data: import("./entities/zns-campaign.entity").ZnsCampaign;
    }>;
    getZnsReport(query: ZnsReportSearchDto): 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;
        }[];
    }>;
    listZnsMessages(filter: GetZnsMessagesDto, req: any, res: any): Promise<any>;
}
