import { OnModuleInit } from '@nestjs/common';
import { Users } from 'src/entities/users.entity';
import { Repository } from 'typeorm';
import { EncryptionService } from '../encryption/encryption.service';
import { UserNotificationPreferences } from 'src/entities/user-notification-preferences.entity';
import { WhatsAppMessage } from 'src/entities/whatsapp-messages.entity';
import { SocketGateway } from '../socket/socket.gateway';
export declare class WhatsAppServices implements OnModuleInit {
    private encryptionService;
    private socketGateway;
    private Users;
    private UserNotificationPreferences;
    private WhatsAppMessage;
    private readonly THANK_YOU_TEMPLATES;
    WHATSAPP_ACCESS_TOKEN: string;
    WHATSAPP_PHONE_NUMBER_ID: string;
    WHATSAPP_API_VERSION: string;
    WHATSAPP_BASE_URL: string;
    constructor(encryptionService: EncryptionService, socketGateway: SocketGateway, Users: Repository<Users>, UserNotificationPreferences: Repository<UserNotificationPreferences>, WhatsAppMessage: Repository<WhatsAppMessage>);
    onModuleInit(): Promise<void>;
    postAxios(url: string, headers: any, payload: any): Promise<any>;
    formatForWhatsApp(message: any): Promise<any>;
    sendWhatsAppMessage(phoneNumber: string, message: string, metadata?: any): Promise<void>;
    verifyWhatsAppNumber(phoneNumber: string, name: string): Promise<void>;
    managerAutoReplyTemplate(language?: string, role?: string): Promise<"en_autoreply_copywriting_for_brand" | "en_autoreply_copywriting_for_influencer" | "hk_autoreply_copywriting_for_brand" | "hk_autoreply_copywriting_for_influence" | "en_autoreply_copywriting">;
    listMessages(queryParam: any): Promise<{
        data: WhatsAppMessage[];
        total: number;
        hasMoreResults: number;
    }>;
    checkAlreadySentAutoReplyMessage(phoneNumber: string, templateName: string): Promise<boolean>;
    sendAutoReplyMessage(phoneNumber: string, templateName?: string): Promise<void>;
    saveWhatsAppMessage(request: any): Promise<boolean>;
    webhook(request: any): Promise<boolean>;
}
