import { WebexRequestPayload } from '../../common/types';
import { APIRequestConfig, APIRequestOptions, MobiusAsyncEvent } from './types';
export declare class APIRequest {
    private static instance;
    private isMobiusSocketEnabled;
    private webex;
    private mobiusSocket;
    private metricManager;
    static getInstance(config: APIRequestConfig): APIRequest;
    static resetInstance(): void;
    constructor(config: APIRequestConfig);
    isSocketEnabled(): boolean;
    connectToMobiusSocket(wssUrl: string): Promise<string | undefined>;
    getConnectedWebSocketUrl(): any;
    disconnectFromMobiusSocket(options?: {
        code: number;
        reason: string;
    }): Promise<void>;
    makeRequest(request: APIRequestOptions): Promise<WebexRequestPayload>;
    registerMobiusSocketListener(cb: (data?: MobiusAsyncEvent) => void): void;
    unregisterMobiusSocketListener(): void;
}
export declare const createAPIRequest: (config: APIRequestConfig) => APIRequest;
//# sourceMappingURL=request.d.ts.map