export default class RpcClient {
    constructor(opts?: {});
    /** @type {RpcMessageHandler|undefined} */
    messageHandler: RpcMessageHandler | undefined;
    /** @type {RemoteMessages|undefined} */
    remoteMessages: RemoteMessages | undefined;
    /** @type {boolean} */
    connected: boolean;
    _targets: {};
    _shouldCheckForTarget: boolean;
    isSafari: any;
    set isConnected(arg: boolean);
    get isConnected(): boolean;
    connId: string;
    senderId: string;
    msgId: number;
    udid: any;
    logAllCommunication: any;
    logAllCommunicationHexDump: any;
    socketChunkSize: any;
    webInspectorMaxFrameLength: any;
    fullPageInitialization: any;
    bundleId: any;
    platformVersion: any;
    _contexts: any[];
    set isTargetBased(arg: any);
    get isTargetBased(): any;
    get contexts(): any[];
    get needsTarget(): any;
    get targets(): {};
    set shouldCheckForTarget(arg: boolean);
    get shouldCheckForTarget(): boolean;
    on(event: any, listener: any): this;
    once(event: any, listener: any): this;
    off(event: any, listener: any): this;
    _isTargetBased: any;
    /**
     *
     * @param {string} appIdKey
     * @param {string} pageIdKey
     * @param {boolean} [force]
     * @returns {Promise<void>}
     */
    waitForTarget(appIdKey: string, pageIdKey: string, force?: boolean | undefined): Promise<void>;
    /**
     *
     * @param {string} command
     * @param {Record<string, any>} [opts]
     * @param {boolean} [waitForResponse]
     * @returns {Promise<any>}
     */
    send(command: string, opts?: Record<string, any> | undefined, waitForResponse?: boolean | undefined): Promise<any>;
    /**
     *
     * @param {string} command
     * @param {Record<string, any>} opts
     * @param {boolean} [waitForResponse]
     * @returns {Promise<any>}
     */
    sendToDevice(command: string, opts?: Record<string, any>, waitForResponse?: boolean | undefined): Promise<any>;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    sendMessage(command: any): Promise<void>;
    receive(): Promise<void>;
    /**
     *
     * @param {Error?} err
     * @param {string} app
     * @param {Record<string, any>} targetInfo
     * @returns {void}
     */
    addTarget(err: Error | null, app: string, targetInfo: Record<string, any>): void;
    /**
     *
     * @param {Error?} err
     * @param {string} app
     * @param {string} oldTargetId
     * @param {string} newTargetId
     * @returns {void}
     */
    updateTarget(err: Error | null, app: string, oldTargetId: string, newTargetId: string): void;
    /**
     *
     * @param {Error?} err
     * @param {string} app
     * @param {Record<string, any>} targetInfo
     * @returns {void}
     */
    removeTarget(err: Error | null, app: string, targetInfo: Record<string, any>): void;
    /**
     * @param {string} appIdKey
     * @param {string} pageIdKey
     * @returns {any}
     */
    getTarget(appIdKey: string, pageIdKey: string): any;
    /**
     * @param {string} appIdKey
     * @param {string} pageIdKey
     * @returns {Promise<void>}
     */
    selectPage(appIdKey: string, pageIdKey: string): Promise<void>;
    /** @type {[string, string]} */
    pendingTargetNotification: [string, string] | undefined;
    /**
     * Perform the minimal initialization to get the Web Inspector working
     * @param {string} appIdKey
     * @param {string} pageIdKey
     * @returns {Promise<void>}
     */
    initializePage(appIdKey: string, pageIdKey: string): Promise<void>;
    /**
     * Mimic every step that Desktop Safari Develop tools uses to initialize a
     * Web Inspector session
     *
     * @param {string} appIdKey
     * @param {string} pageIdKey
     * @returns {Promise<void>}
     */
    initializePageFull(appIdKey: string, pageIdKey: string): Promise<void>;
    /**
     *
     * @param {string} appIdKey
     * @returns {Promise<[string, Record<string, any>]>}
     */
    selectApp(appIdKey: string): Promise<[string, Record<string, any>]>;
    /**
     *
     * @param {Error?} err
     * @param {Record<string, any>} context
     */
    onExecutionContextCreated(err: Error | null, context: Record<string, any>): void;
    onGarbageCollected(): void;
    /**
     *
     * @param {Error?} err
     * @param {Record<string, any>} scriptInfo
     */
    onScriptParsed(err: Error | null, scriptInfo: Record<string, any>): void;
}
import RpcMessageHandler from './rpc-message-handler';
import RemoteMessages from './remote-messages';
//# sourceMappingURL=rpc-client.d.ts.map