import { DataStoreType } from "../../config/config";
import { Deferred } from "../Utils";
export {};
declare class XmppClient {
    options: any;
    xmppOptions: any;
    eventEmitter: any;
    restartConnectEnabled: any;
    client: any;
    iqGetEventWaiting: any;
    logger: any;
    xmppQueue: any;
    timeBetweenXmppRequests: any;
    maxPendingAsyncLockXmppQueue: any;
    username: any;
    password: any;
    socketClosed: boolean;
    storeMessages: any;
    enablesendurgentpushmessages: any;
    copyMessage: any;
    rateLimitPerHour: any;
    private nbMessagesSentThisHour;
    lastTimeReset: Date;
    timeBetweenReset: number;
    messagesDataStore: DataStoreType;
    socket: any;
    pendingRequests: Array<{
        id: string;
        prom: Deferred;
    }>;
    interval: any;
    constructor(...args: any[]);
    fn_pong(): void;
    init(_logger: any, _eventemitter: any, _timeBetweenXmppRequests: any, _storeMessages: any, _rateLimitPerHour: any, _messagesDataStore: any, _copyMessage: any, _enablesendurgentpushmessages: any, _maxPendingAsyncLockXmppQueue: any): Promise<void>;
    onIqErrorReceived(msg: any, stanzaTab: any): void;
    iqGetEventPing(ctx: any): {};
    iqSetEventRoster(ctx: any): {};
    iqSetEventHttp(ctx: any): Promise<boolean>;
    iqSetEventRpc(ctx: any): Promise<boolean>;
    iqGetEventEventsCalendar(ctx: any): Promise<boolean>;
    iqGetEventAutoreplyCalendar(ctx: any): Promise<boolean>;
    onIqResultReceived(msg: any, stanzaTab: any): void;
    resolvPendingRequest(id: any, stanza: any): Promise<boolean>;
    resetnbMessagesSentThisHour(): void;
    send(...args: any[]): any;
    sendIq(...args: any[]): Promise<unknown>;
    sendIq_orig(...args: any[]): Promise<unknown>;
    emit(evtname: any, stanza: any): void;
    on(evt: any, cb: any): void;
    get sasl(): any;
    setgetMechanism(cb: any): void;
    get reconnect(): any;
    /**
     * @description
     *  Do not use this method to reconnect. Use the @xmpp/reconnect pluging else (with the method XmppClient::reconnect).
     *
     * @returns {Promise<any>}
     */
    restartConnect(): Promise<string>;
    start(...args: any[]): any;
    stop(...args: any[]): any;
}
declare function getXmppClient(...args: any[]): void;
export { getXmppClient, XmppClient };
