import { EventEmitter } from "events";
import { Logger } from "../common/Logger";
import { Core } from "../Core";
import { GenericService } from "./GenericService";
export {};
declare class HTTPoverXMPP extends GenericService {
    private avatarDomain;
    private readonly _protocol;
    private readonly _host;
    private readonly _port;
    private hTTPoverXMPPHandlerToken;
    static getClassName(): string;
    getClassName(): string;
    static getAccessorName(): string;
    getAccessorName(): string;
    constructor(_core: Core, _eventEmitter: EventEmitter, _http: any, _logger: Logger, _startConfig: {
        start_up: boolean;
        optional: boolean;
    });
    start(_options: any): Promise<unknown>;
    stop(): Promise<unknown>;
    init(useRestAtStartup: boolean): Promise<void>;
    attachHandlers(): void;
    /**
     * @public
     * @nodered true
     * @method get
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a GET http request to an XMPP server supporting Xep0332. <br>
     * @param {string} urlToGet The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    get(urlToGet: string, headers?: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method discoverHTTPoverXMPP
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a discover presence to a bare jid to find the resources availables. <br>
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    discoverHTTPoverXMPP(headers?: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method trace
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a TRACE http request to an XMPP server supporting Xep0332. TRACE is only used for debugging <br>
     * @param {string} urlToTrace The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    trace(urlToTrace: string, headers?: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method head
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a HEAD http request to an XMPP server supporting Xep0332. <br>
     * @param {string} urlToHead The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    head(urlToHead: string, headers?: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method post
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a POST http request to an XMPP server supporting Xep0332. <br>
     * @param {string} urlToPost The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} data The body data of the http request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    post(urlToPost: string, headers: any, data: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method put
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a PUT http request to an XMPP server supporting Xep0332. <br>
     * @param {string} urlToPost The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} data The body data of the http request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    put(urlToPost: string, headers: any, data: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @public
     * @nodered true
     * @method delete
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to send a DELETE http request to an XMPP server supporting Xep0332. <br>
     * @param {string} urlToPost The url to request
     * @param {Object} headers={} The Http Headers used to web request.
     * @param {string} data The body data of the http request.
     * @param {string} httpoverxmppserver_jid the jid of the http over xmpp server used to retrieve the HTTP web request. default value is the jid of the account running the SDK.
     * @return {Promise<any>} An object of the result
     */
    delete(urlToPost: string, headers: any, data: any, httpoverxmppserver_jid?: string): Promise<unknown>;
    /**
     * @private
     * @nodered true
     * @method discover
     * @since 2.10.0
     * @instance
     * @async
     * @category Rainbow HTTPoverXMPP
     * @description
     *    This API allows to get the supported XMPP services. <br>
     * @return {Promise<any>} An object of the result
     */
    discover(): Promise<unknown>;
}
export { HTTPoverXMPP as HTTPoverXMPP };
