import type { Response } from 'express';
import { WhatsAppBotEngine } from './services/whatsapp-bot.engine';
import { WhatsAppService } from './services/whatsapp.service';
import { PrismaService } from '../../prisma/prisma.service';
import { EncryptionService } from '../../common/services/encryption.service';
export declare class WhatsAppWebhookController {
    private readonly botEngine;
    private readonly whatsappService;
    private readonly prisma;
    private readonly encryptionService;
    private readonly logger;
    constructor(botEngine: WhatsAppBotEngine, whatsappService: WhatsAppService, prisma: PrismaService, encryptionService: EncryptionService);
    private cleanPhoneNumber;
    verifyWebhook(mode: string, token: string, challenge: string, res: Response): Response<any, Record<string, any>>;
    handleIncomingWebhook(payload: any, req: any): Promise<{
        success: boolean;
        error?: undefined;
    } | {
        success: boolean;
        error: any;
    }>;
    simulateIncomingMessage(body: {
        businessId: string;
        whatsappNumber: string;
        message: string;
    }): Promise<{
        success: boolean;
        reply: string;
        sessionState: {};
    }>;
    webviewConfirm(body: {
        businessId: string;
        whatsappNumber: string;
        productId: string;
        quantity: number;
    }): Promise<{
        success: boolean;
        totalQuantity: number;
        error?: undefined;
    } | {
        success: boolean;
        error: any;
        totalQuantity?: undefined;
    }>;
    getMessageLogs(req: any, phone?: string): Promise<{
        id: string;
        status: string;
        createdAt: Date;
        businessId: string;
        customerId: string | null;
        whatsappNumber: string;
        direction: string;
        messageType: string;
        messageBody: string;
        rawPayloadJson: string | null;
    }[]>;
    getActiveSessions(req: any): Promise<({
        customer: {
            email: string | null;
            id: string;
            name: string | null;
            createdAt: Date;
            updatedAt: Date;
            businessId: string;
            whatsappNumber: string;
            externalCustomerId: string | null;
        };
    } & {
        id: string;
        createdAt: Date;
        updatedAt: Date;
        businessId: string;
        customerId: string;
        whatsappNumber: string;
        currentStep: string;
        sessionDataJson: string;
        expiresAt: Date;
    })[]>;
    resetSession(req: any, body: {
        whatsappNumber: string;
    }): Promise<{
        success: boolean;
    }>;
    simulateTemplate(req: any, body: {
        whatsappNumber: string;
        templateType: string;
        bodyText: string;
        payload: any;
    }): Promise<{
        success: boolean;
    }>;
    broadcastMessage(req: any, body: {
        message: string;
        recipientPhone?: string;
    }): Promise<{
        success: boolean;
        count: number;
        failed: number;
        message: string;
    } | {
        success: boolean;
        count: number;
        message: string;
        failed?: undefined;
    }>;
}
