import type { RouteMatcher, HTTPMethod, HTTPBody, DefaultCreateSessionResult, DriverData, InitialOpts, StringRecord, ExternalDriver, W3CDriverCaps } from '@appium/types';
import { BaseDriver } from 'appium/driver';
import { type WDAMacServer } from './wda-mac';
import { type Mac2Constraints } from './constraints';
import * as appManagemenetCommands from './commands/app-management';
import * as appleScriptCommands from './commands/applescript';
import * as executeCommands from './commands/execute';
import * as findCommands from './commands/find';
import * as gesturesCommands from './commands/gestures';
import * as navigationCommands from './commands/navigation';
import * as recordScreenCommands from './commands/record-screen';
import * as screenshotCommands from './commands/screenshots';
import * as sourceCommands from './commands/source';
import * as clipboardCommands from './commands/clipboard';
import * as nativeScreenRecordingCommands from './commands/native-record-screen';
export declare class Mac2Driver extends BaseDriver<Mac2Constraints, StringRecord> implements ExternalDriver<Mac2Constraints, string, StringRecord> {
    private isProxyActive;
    private _wda;
    _videoChunksBroadcaster: nativeScreenRecordingCommands.NativeVideoChunksBroadcaster;
    _screenRecorder: recordScreenCommands.ScreenRecorder | null;
    proxyReqRes: (...args: any) => any;
    static newMethodMap: {
        readonly '/session/:sessionId/appium/start_recording_screen': {
            readonly POST: {
                readonly command: "startRecordingScreen";
                readonly payloadParams: {
                    readonly optional: readonly ["options"];
                };
            };
        };
        readonly '/session/:sessionId/appium/stop_recording_screen': {
            readonly POST: {
                readonly command: "stopRecordingScreen";
                readonly payloadParams: {
                    readonly optional: readonly ["options"];
                };
            };
        };
    };
    static executeMethodMap: {
        readonly 'macos: click': {
            readonly command: "macosClick";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: scroll': {
            readonly command: "macosScroll";
            readonly params: {
                readonly required: readonly ["deltaX", "deltaY"];
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: swipe': {
            readonly command: "macosSwipe";
            readonly params: {
                readonly required: readonly ["direction"];
                readonly optional: readonly ["elementId", "x", "y", "velocity", "keyModifierFlags"];
            };
        };
        readonly 'macos: rightClick': {
            readonly command: "macosRightClick";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: hover': {
            readonly command: "macosHover";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: doubleClick': {
            readonly command: "macosDoubleClick";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: clickAndDrag': {
            readonly command: "macosClickAndDrag";
            readonly params: {
                readonly required: readonly ["duration"];
                readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "keyModifierFlags"];
            };
        };
        readonly 'macos: clickAndDragAndHold': {
            readonly command: "macosClickAndDragAndHold";
            readonly params: {
                readonly required: readonly ["duration", "holdDuration"];
                readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "velocity", "keyModifierFlags"];
            };
        };
        readonly 'macos: keys': {
            readonly command: "macosKeys";
            readonly params: {
                readonly required: readonly ["keys"];
                readonly optional: readonly ["elementId"];
            };
        };
        readonly 'macos: tap': {
            readonly command: "macosTap";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: doubleTap': {
            readonly command: "macosDoubleTap";
            readonly params: {
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: press': {
            readonly command: "macosPressAndHold";
            readonly params: {
                readonly required: readonly ["duration"];
                readonly optional: readonly ["elementId", "x", "y", "keyModifierFlags"];
            };
        };
        readonly 'macos: pressAndDrag': {
            readonly command: "macosPressAndDrag";
            readonly params: {
                readonly required: readonly ["duration"];
                readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "keyModifierFlags"];
            };
        };
        readonly 'macos: pressAndDragAndHold': {
            readonly command: "macosPressAndDragAndHold";
            readonly params: {
                readonly required: readonly ["duration", "holdDuration"];
                readonly optional: readonly ["sourceElementId", "destinationElementId", "startX", "startY", "endX", "endY", "velocity", "keyModifierFlags"];
            };
        };
        readonly 'macos: source': {
            readonly command: "macosSource";
            readonly params: {
                readonly optional: readonly ["format"];
            };
        };
        readonly 'macos: deepLink': {
            readonly command: "macosDeepLink";
            readonly params: {
                readonly required: readonly ["url"];
                readonly optional: readonly ["bundleId"];
            };
        };
        readonly 'macos: screenshots': {
            readonly command: "macosScreenshots";
            readonly params: {
                readonly optional: readonly ["displayId"];
            };
        };
        readonly 'macos: appleScript': {
            readonly command: "macosExecAppleScript";
            readonly params: {
                readonly optional: readonly ["script", "language", "command", "cwd", "timeout"];
            };
        };
        readonly 'macos: launchApp': {
            readonly command: "macosLaunchApp";
            readonly params: {
                readonly optional: readonly ["bundleId", "path", "arguments", "environment"];
            };
        };
        readonly 'macos: activateApp': {
            readonly command: "macosActivateApp";
            readonly params: {
                readonly optional: readonly ["bundleId", "path"];
            };
        };
        readonly 'macos: terminateApp': {
            readonly command: "macosTerminateApp";
            readonly params: {
                readonly optional: readonly ["bundleId", "path"];
            };
        };
        readonly 'macos: queryAppState': {
            readonly command: "macosQueryAppState";
            readonly params: {
                readonly optional: readonly ["bundleId", "path"];
            };
        };
        readonly 'macos: startRecordingScreen': {
            readonly command: "startRecordingScreen";
            readonly params: {
                readonly required: readonly ["deviceId"];
                readonly optional: readonly ["timeLimit", "videoFilter", "fps", "preset", "captureCursor", "captureClicks", "forceRestart"];
            };
        };
        readonly 'macos: stopRecordingScreen': {
            readonly command: "stopRecordingScreen";
            readonly params: {
                readonly optional: readonly ["remotePath", "user", "pass", "method", "headers", "fileFieldName", "formFields"];
            };
        };
        readonly 'macos: startNativeScreenRecording': {
            readonly command: "macosStartNativeScreenRecording";
            readonly params: {
                readonly optional: readonly ["fps", "codec", "displayId"];
            };
        };
        readonly 'macos: getNativeScreenRecordingInfo': {
            readonly command: "macosGetNativeScreenRecordingInfo";
        };
        readonly 'macos: stopNativeScreenRecording': {
            readonly command: "macosStopNativeScreenRecording";
            readonly params: {
                readonly optional: readonly ["remotePath", "user", "pass", "method", "headers", "fileFieldName", "formFields", "ignorePayload"];
            };
        };
        readonly 'macos: listDisplays': {
            readonly command: "macosListDisplays";
        };
        readonly 'macos: getClipboard': {
            readonly command: "macosGetClipboard";
            readonly params: {
                readonly optional: readonly ["contentType"];
            };
        };
        readonly 'macos: setClipboard': {
            readonly command: "macosSetClipboard";
            readonly params: {
                readonly required: readonly ["content"];
                readonly optional: readonly ["contentType"];
            };
        };
    };
    constructor(opts?: InitialOpts);
    onSettingsUpdate(key: string, value: unknown): Promise<void>;
    get wda(): WDAMacServer;
    proxyActive(sessionId: string): boolean;
    getProxyAvoidList(sessionId: string): RouteMatcher[];
    canProxy(): boolean;
    proxyCommand(url: string, method: HTTPMethod, body?: HTTPBody): Promise<any>;
    getStatus(): Promise<any>;
    getWindowRect(): Promise<any>;
    createSession(w3cCaps1: W3CMac2DriverCaps, w3cCaps2?: W3CMac2DriverCaps, w3cCaps3?: W3CMac2DriverCaps, driverData?: DriverData[]): Promise<DefaultCreateSessionResult<Mac2Constraints>>;
    deleteSession(): Promise<void>;
    private resetState;
    macosLaunchApp: typeof appManagemenetCommands.macosLaunchApp;
    macosActivateApp: typeof appManagemenetCommands.macosActivateApp;
    macosTerminateApp: typeof appManagemenetCommands.macosTerminateApp;
    macosQueryAppState: typeof appManagemenetCommands.macosQueryAppState;
    macosExecAppleScript: typeof appleScriptCommands.macosExecAppleScript;
    execute: typeof executeCommands.execute;
    findElOrEls: typeof findCommands.findElOrEls;
    macosSetValue: typeof gesturesCommands.macosSetValue;
    macosClick: typeof gesturesCommands.macosClick;
    macosScroll: typeof gesturesCommands.macosScroll;
    macosSwipe: typeof gesturesCommands.macosSwipe;
    macosRightClick: typeof gesturesCommands.macosRightClick;
    macosHover: typeof gesturesCommands.macosHover;
    macosDoubleClick: typeof gesturesCommands.macosDoubleClick;
    macosClickAndDrag: typeof gesturesCommands.macosClickAndDrag;
    macosClickAndDragAndHold: typeof gesturesCommands.macosClickAndDragAndHold;
    macosKeys: typeof gesturesCommands.macosKeys;
    macosPressAndHold: typeof gesturesCommands.macosPressAndHold;
    macosTap: typeof gesturesCommands.macosTap;
    macosDoubleTap: typeof gesturesCommands.macosDoubleTap;
    macosPressAndDrag: typeof gesturesCommands.macosPressAndDrag;
    macosPressAndDragAndHold: typeof gesturesCommands.macosPressAndDragAndHold;
    macosGetClipboard: typeof clipboardCommands.macosGetClipboard;
    macosSetClipboard: typeof clipboardCommands.macosSetClipboard;
    macosDeepLink: typeof navigationCommands.macosDeepLink;
    startRecordingScreen: typeof recordScreenCommands.startRecordingScreen;
    stopRecordingScreen: typeof recordScreenCommands.stopRecordingScreen;
    macosStartNativeScreenRecording: typeof nativeScreenRecordingCommands.macosStartNativeScreenRecording;
    macosGetNativeScreenRecordingInfo: typeof nativeScreenRecordingCommands.macosGetNativeScreenRecordingInfo;
    macosStopNativeScreenRecording: typeof nativeScreenRecordingCommands.macosStopNativeScreenRecording;
    macosListDisplays: typeof nativeScreenRecordingCommands.macosListDisplays;
    macosScreenshots: typeof screenshotCommands.macosScreenshots;
    macosSource: typeof sourceCommands.macosSource;
}
export default Mac2Driver;
type W3CMac2DriverCaps = W3CDriverCaps<Mac2Constraints>;
//# sourceMappingURL=driver.d.ts.map