import { XMPPUTils } from "../common/XMPPUtils";
import { XmppClient } from "../common/XmppQueue/XmppClient";
import { AlertMessage } from "../common/models/AlertMessage";
import { DataStoreType } from "../config/config";
import { GenericService } from "../services/GenericService";
import { HttpoverxmppEventHandler } from "./XMPPServiceHandler/httpoverxmppEventHandler";
import { RpcoverxmppEventHandler } from "./XMPPServiceHandler/rpcoverxmppEventHandler";
import { ConversationHistoryHandler } from "./XMPPServiceHandler/conversationHistoryHandler.js";
import { CallLogEventHandler } from "./XMPPServiceHandler/calllogEventHandler.js";
import { CalendarManager } from "../common/CalendarManager.js";
import { AutoReplyManager } from "../common/AutoReplyManager.js";
declare const NameSpacesLabels: {
    ChatstatesNS: string;
    ReceiptNS: string;
    CallLogNamespace: string;
    CallLogAckNamespace: string;
    CallLogNotificationsNamespace: string;
    RsmNameSpace: string;
    Carbon2NameSpace: string;
    ApplicationNameSpace: string;
    RosterNameSpace: string;
    ClientNameSpace: string;
    PingNameSpace: string;
    DataNameSpace: string;
    MucNameSpace: string;
    ReceiptsNameSpace: string;
    ChatestatesNameSpace: string;
    ContentNameSpace: string;
    MessageCorrectNameSpace: string;
    HintsNameSpace: string;
    OobNameSpace: string;
    Monitoring1NameSpace: string;
    CallService1NameSpace: string;
    MamNameSpace: string;
    MamNameSpaceTmp: string;
    AttentionNS: string;
    IncidentCap: string;
    MonitoringNS: string;
    XmppHttpNS: string;
    protocolShimNS: string;
    XmppFraming: string;
    RPC: string;
    RainbowCpaaSMessage: string;
};
declare class XMPPService extends GenericService {
    serverURL: any;
    host: any;
    eventEmitter: any;
    version: any;
    jid_im: any;
    jid_tel: any;
    jid_password: any;
    fullJid: any;
    jid: any;
    userId: any;
    resourceId: any;
    initialPresence: any;
    xmppClient: XmppClient;
    _logger: any;
    proxy: any;
    shouldSendReadReceipt: any;
    useXMPP: any;
    timeBetweenXmppRequests: any;
    maxPendingAsyncLockXmppQueue: any;
    isReconnecting: any;
    maxAttempts: any;
    idleTimer: any;
    pingTimer: any;
    forceClose: any;
    applicationId: any;
    generatedRandomId: any;
    hash: any;
    reconnect: any;
    fibonacciStrategy: any;
    IQEventHandlerToken: any;
    IQEventHandler: any;
    httpoverxmppEventHandler: HttpoverxmppEventHandler;
    rpcoverxmppEventHandler: RpcoverxmppEventHandler;
    conversationHistoryHandler: ConversationHistoryHandler;
    calllogEventHandler: CallLogEventHandler;
    xmppUtils: XMPPUTils;
    private shouldSendMessageToConnectedUser;
    private storeMessages;
    private copyMessage;
    private enablesendurgentpushmessages;
    private useMessageEditionAndDeletionV2;
    private rateLimitPerHour;
    private messagesDataStore;
    private raiseLowLevelXmppInEvent;
    private raiseLowLevelXmppOutReq;
    private maxIdleTimer;
    private maxPingAnswerTimer;
    private company;
    private xmppRessourceName;
    private xmppOptions;
    static getClassName(): string;
    getClassName(): string;
    static getAccessorName(): string;
    getAccessorName(): string;
    constructor(_core: any, _xmppOptions: any, _im: any, _application: any, _eventEmitter: any, _logger: any, _proxy: any, _rest: any, _options: any);
    start(withXMPP: any): Promise<unknown>;
    signin(account: any, headers: any): Promise<unknown>;
    stop(forceStop: any): Promise<unknown>;
    startOrResetIdleTimer(incomingStanza?: boolean): void;
    stopIdleTimer(): void;
    mockStanza(stanza: any): void;
    fn_input(stanzaStr: any): void;
    fn_STANZA_EVENT(stanza: any): Promise<void>;
    handleXMPPConnection(headers: any): Promise<void>;
    setPresence(show: any, status: any): any;
    subscribePresence(to: any): any;
    enableCarbon(): Promise<any>;
    disableCarbon(): Promise<any>;
    sendStanza(stanza: any): any;
    sendChatMessage(message: any, jid: any, lang: any, content: any, subject: any, answeredMsg: any, urgency?: string, p_messagesDataStore?: DataStoreType): Promise<any>;
    sendChatMessageToBubble(message: any, jid: any, lang: any, content: any, subject: any, answeredMsg: any, attention: any, urgency: string, p_messagesDataStore: DataStoreType): Promise<any>;
    sendCorrectedChatMessage(conversation: any, originalMessage: any, data: any, origMsgId: any, lang: any, content: any, urgency: string, p_messagesDataStore: DataStoreType): Promise<string>;
    markMessageAsRead(message: any, conversationType?: string, span?: number): Promise<any>;
    markMessageAsReceived(message: any, conversationType: string, span?: number): Promise<any>;
    sendChatExistingFSMessage(message: any, jid: any, lang: any, fileDescriptor: any, p_messagesDataStore: DataStoreType): Promise<any>;
    sendChatExistingFSMessageToBubble(message: any, jid: any, lang: any, fileDescriptor: any, p_messagesDataStore: DataStoreType): Promise<any>;
    sendIsTypingState(conversation: any, isTypingState: any, p_messagesDataStore: DataStoreType): Promise<any>;
    sendApplicationMessageAsync(jid: any, type: any, element: any, p_messagesDataStore: DataStoreType): Promise<any>;
    sendVoicemailTranscriptionMessage(to: string, transcriptInfo: {
        jid: string;
        date: string;
        duration: number;
        fileDescId: string;
        fromNumber: string;
        transcript: string;
    }, p_messagesDataStore: DataStoreType): Promise<any>;
    /****************************************************/
    /**            XMPP ROSTER MANAGEMENT              **/
    /****************************************************/
    sendSubscription(contact: any): Promise<void>;
    sendSubscribeInvitation(jid: any): Promise<unknown>;
    sendInitialAllBubblePresence(webinar?: boolean, acknowledge?: boolean): any;
    sendInitialBubblePresence(jid: any): any;
    sendUnavailableBubblePresence(jid: any): void;
    getAgentStatus(): Promise<unknown>;
    /**
     *
      * @param useAfter
     * @returns {Promise<void>}
     */
    sendGetCallLogHistoryPage(useAfter: any): Promise<unknown>;
    deleteOneCallLog(id: any): Promise<unknown>;
    deleteCallLogsForContact(jid: any): Promise<unknown>;
    deleteAllCallLogs(): Promise<any>;
    markCallLogAsRead(id: any): Promise<unknown>;
    markAllCallsLogsAsRead(callLogs: any): Promise<any[]>;
    deleteAllMessageInOneToOneConversation(conversationId: any): Promise<unknown>;
    deleteAllMessagesInRoomConversation(roomJid: any, forContactJid?: any): Promise<unknown>;
    getErrorMessage(data: any, actionLabel: any): string;
    getTelephonyState(secondary: any): Promise<unknown>;
    sendPing(to?: string): Promise<any>;
    SendAlertMessage(alertMessage: AlertMessage): Promise<unknown>;
    mamQuery(jid: any, options: any, useBulk: any): void;
    mamQueryMuc(jid: any, to: any, options: any, useBulk: any): void;
    mamDelete(options: any): void;
    voiceMessageQuery(jid: any): Promise<unknown>;
    discoverHTTPoverXMPP(to: any, headers?: {}): Promise<unknown>;
    getHTTPoverXMPP(urlToGet: any, to: any, headers?: {}): Promise<unknown>;
    traceHTTPoverXMPP(urlToGet: any, to: any, headers?: {}): Promise<unknown>;
    headHTTPoverXMPP(urlToGet: any, to: any, headers?: {}): Promise<unknown>;
    postHTTPoverXMPP(urlToGet: any, to: any, headers: {}, data: any): Promise<unknown>;
    putHTTPoverXMPP(urlToGet: any, to: any, headers: {}, data: any): Promise<unknown>;
    deleteHTTPoverXMPP(urlToGet: any, to: any, headers: {}, data: any): Promise<unknown>;
    discover(): Promise<unknown>;
    discoverRPCoverXMPP(to: any, headers?: {}): Promise<unknown>;
    arrayToStanza(arrayOfParams: any, stanzaData: any): void;
    valueTypeToStanza(param: any, stanzaData: any): void;
    paramToStanza(params: any, stanzaParams: any): void;
    valueTypeToValue(param: any): any;
    decodeRPCParam(param: any): any;
    callRPCMethod(to: any, methodName: any, params?: Array<any>): Promise<any>;
    traceRPCoverXMPP(urlToGet: any, to: any, headers?: {}): Promise<unknown>;
    sendResultCalendarEvents(calendarManager: CalendarManager): Promise<boolean>;
    sendAutoReplyEvents(autoReplyManager: AutoReplyManager): Promise<boolean>;
}
export { XMPPService, NameSpacesLabels };
