export default RemoteDebugger;
export class RemoteDebugger extends EventEmitter {
    /** @type {string} */
    static EVENT_PAGE_CHANGE: string;
    /** @type {string} */
    static EVENT_DISCONNECT: string;
    constructor(opts?: {});
    /** @type {any[]|undefined} */
    _skippedApps: any[] | undefined;
    /** @type {Record<string, any>} */
    _clientEventListeners: Record<string, any>;
    /** @type {Record<string, any>} */
    appDict: Record<string, any>;
    /** @type {Record<string, any>[]|undefined} */
    connectedDrivers: Record<string, any>[] | undefined;
    /** @type {Record<string, any>[]|undefined} */
    currentState: Record<string, any>[] | undefined;
    /** @type {boolean|undefined} */
    connected: boolean | undefined;
    /** @type {B<void>} */
    pageLoadDelay: B<void>;
    /** @type {B<void>} */
    navigationDelay: B<void>;
    /** @type {import('./rpc/rpc-client').default?} */
    rpcClient: import('./rpc/rpc-client').default | null;
    /** @type {() => Promise<void>} */
    setConnectionKey: () => Promise<void>;
    /** @type {() => Promise<void>} */
    disconnect: () => Promise<void>;
    /** @type {(currentUrl: string?, maxTries: number, ignoreAboutBlankUrl: boolean) => Promise<Record<string, any>>} */
    searchForApp: (currentUrl: string | null, maxTries: number, ignoreAboutBlankUrl: boolean) => Promise<Record<string, any>>;
    /** @type {(appsDict:Record<string, any>, currentUrl: string?, ignoreAboutBlankUrl: boolean) => import('./mixins/connect').AppPages?} */
    searchForPage: (appsDict: Record<string, any>, currentUrl: string | null, ignoreAboutBlankUrl: boolean) => import('./mixins/connect').AppPages | null;
    /** @type {() => Promise<void>} */
    pageUnload: () => Promise<void>;
    /** @type {() => Promise<boolean>} */
    checkPageIsReady: () => Promise<boolean>;
    /** @type {(dict: Record<string, any>) => void} */
    updateAppsWithDict: (dict: Record<string, any>) => void;
    /** @type {(startPageLoadTimer?: import('@appium/support').timing.Timer, pageLoadVerifyHook?: import('./mixins/navigate').TPageLoadVerifyHook) => Promise<void>} */
    waitForDom: (startPageLoadTimer?: import('@appium/support').timing.Timer, pageLoadVerifyHook?: import('./mixins/navigate').TPageLoadVerifyHook) => Promise<void>;
    /** @type {(startPageLoadTimer?: import('@appium/support').timing.Timer?, pageLoadVerifyHook?: import('./mixins/navigate').TPageLoadVerifyHook) => Promise<void>} */
    pageLoad: (startPageLoadTimer?: import('@appium/support').timing.Timer | null, pageLoadVerifyHook?: import('./mixins/navigate').TPageLoadVerifyHook) => Promise<void>;
    /** @type {(command: string, override?: boolean) => Promise<any>} */
    execute: (command: string, override?: boolean) => Promise<any>;
    /** @type {() => Promise<any>} */
    waitForFrameNavigated: () => Promise<any>;
    /** @type {(atom: string, args?: any[], frames?: string[]) => Promise<string>} */
    executeAtom: (atom: string, args?: any[], frames?: string[]) => Promise<string>;
    /** @type {(err: Error?, appIdKey: string, pageDict: Record<string, any>) => Promise<void>} */
    onPageChange: (err: Error | null, appIdKey: string, pageDict: Record<string, any>) => Promise<void>;
    /** @type {(err: Error?, apps: Record<string, any>) => Promise<void>} */
    onConnectedApplicationList: (err: Error | null, apps: Record<string, any>) => Promise<void>;
    /** @type {(err: Error?, dict: Record<string, any>) => Promise<void>} */
    onAppConnect: (err: Error | null, dict: Record<string, any>) => Promise<void>;
    /** @type {(err: Error?, dict: Record<string, any>) => void} */
    onAppDisconnect: (err: Error | null, dict: Record<string, any>) => void;
    /** @type {(err: Error?, dict: Record<string, any>) => Promise<void>} */
    onAppUpdate: (err: Error | null, dict: Record<string, any>) => Promise<void>;
    /** @type {(err: Error?, drivers: Record<string, any>) => void} */
    onConnectedDriverList: (err: Error | null, drivers: Record<string, any>) => void;
    /** @type {(err: Error?, state: Record<string, any>) => void} */
    onCurrentState: (err: Error | null, state: Record<string, any>) => void;
    /** @type {(err: Error?, state: Record<string, any>) => void} */
    frameDetached: (err: Error | null, state: Record<string, any>) => void;
    bundleId: any;
    additionalBundleIds: any;
    platformVersion: any;
    isSafari: any;
    includeSafari: any;
    useNewSafari: any;
    pageLoadMs: any;
    garbageCollectOnExecute: any;
    host: any;
    port: any;
    socketPath: any;
    remoteDebugProxy: any;
    pageReadyTimeout: any;
    logAllCommunication: boolean;
    logAllCommunicationHexDump: any;
    socketChunkSize: any;
    webInspectorMaxFrameLength: any;
    fullPageInitialization: any;
    _lock: AsyncLock;
    setup(): void;
    appIdKey: any;
    pageIdKey: any;
    pageLoading: boolean | undefined;
    _navigatingToPage: boolean | undefined;
    set allowNavigationWithoutReload(arg: any);
    get allowNavigationWithoutReload(): any;
    teardown(): void;
    initRpcClient(): void;
    get isConnected(): boolean;
    launchSafari(): Promise<void>;
    startTimeline(fn: any): Promise<any>;
    stopTimeline(): Promise<void>;
    addClientEventListener(eventName: any, listener: any): void;
    removeClientEventListener(eventName: any): void;
    startConsole(listener: any): void;
    stopConsole(): void;
    startNetwork(listener: any): void;
    stopNetwork(): void;
    _allowNavigationWithoutReload: any;
    overrideUserAgent(value: any): Promise<any>;
    getCookies(): Promise<any>;
    setCookie(cookie: any): Promise<any>;
    deleteCookie(cookieName: any, url: any): Promise<any>;
    garbageCollect(timeoutMs?: number): Promise<void>;
    useAppDictLock(fn: any): Promise<any>;
    get skippedApps(): any[];
}
export const REMOTE_DEBUGGER_PORT: 27753;
export const RPC_RESPONSE_TIMEOUT_MS: 5000;
import { EventEmitter } from 'events';
import B from 'bluebird';
import AsyncLock from 'async-lock';
//# sourceMappingURL=remote-debugger.d.ts.map