"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PROTOCOL_COMMANDS = void 0;
exports.PROTOCOL_COMMANDS = {
    _getWindowSize: {
        method: 'GET',
        path: '/session/:sessionId/window/current/size',
        variables: [],
        parameters: [],
    },
    _setWindowSize: {
        method: 'POST',
        path: '/session/:sessionId/window/current/size',
        variables: [],
        parameters: ['width', 'height'],
    },
    acceptAlert: {
        method: 'POST',
        path: '/session/:sessionId/alert/accept',
        variables: [],
        parameters: [],
    },
    activateApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/activate_app',
        variables: [],
        parameters: ['appId'],
    },
    activateIME: {
        method: 'POST',
        path: '/session/:sessionId/ime/activate',
        variables: [],
        parameters: ['engine'],
    },
    addCookie: {
        method: 'POST',
        path: '/session/:sessionId/cookie',
        variables: [],
        parameters: ['cookie'],
    },
    addCredential: {
        method: 'POST',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId/credential',
        variables: [],
        parameters: [
            'credentialId',
            'isResidentCredential',
            'rpId',
            'privateKey',
            'userHandle',
            'signCount',
            'largeBlob',
        ],
    },
    addVirtualAuthenticator: {
        method: 'POST',
        path: '/session/:sessionId/webauthn/authenticator',
        variables: [],
        parameters: [
            'protocol',
            'transport',
            'hasResidentKey',
            'hasUserVerification',
            'isUserConsenting',
            'isUserVerified',
            'extensions',
            'uvm',
        ],
    },
    back: {
        method: 'POST',
        path: '/session/:sessionId/back',
        variables: [],
        parameters: [],
    },
    background: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/background',
        variables: [],
        parameters: ['seconds'],
    },
    buttonDown: {
        method: 'POST',
        path: '/session/:sessionId/buttondown',
        variables: [],
        parameters: ['button'],
    },
    buttonUp: {
        method: 'POST',
        path: '/session/:sessionId/buttonup',
        variables: [],
        parameters: ['button'],
    },
    clearLocalStorage: {
        method: 'DELETE',
        path: '/session/:sessionId/local_storage',
        variables: [],
        parameters: [],
    },
    clearSessionStorage: {
        method: 'DELETE',
        path: '/session/:sessionId/session_storage',
        variables: [],
        parameters: [],
    },
    closeApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/close',
        variables: [],
        parameters: [],
    },
    closeWindow: {
        method: 'DELETE',
        path: '/session/:sessionId/window',
        variables: [],
        parameters: [],
    },
    compareImages: {
        method: 'POST',
        path: '/session/:sessionId/appium/compare_images',
        variables: [],
        parameters: ['mode', 'firstImage', 'secondImage', 'options'],
    },
    createMockSensor: {
        method: 'POST',
        path: '/session/:sessionId/sensor',
        variables: [],
        parameters: [
            'mockSensorType',
            'maxSamplingFrequency',
            'minSamplingFrequency',
        ],
    },
    createWindow: {
        method: 'POST',
        path: '/session/:sessionId/window/new',
        variables: [],
        parameters: ['type'],
    },
    deactivateIME: {
        method: 'POST',
        path: '/session/:sessionId/ime/deactivate',
        variables: [],
        parameters: [],
    },
    deleteAllCookies: {
        method: 'DELETE',
        path: '/session/:sessionId/cookie',
        variables: [],
        parameters: [],
    },
    deleteCookie: {
        method: 'DELETE',
        path: '/session/:sessionId/cookie/:name',
        variables: ['name'],
        parameters: [],
    },
    deleteLocalStorageItem: {
        method: 'DELETE',
        path: '/session/:sessionId/local_storage/key/:key',
        variables: ['key'],
        parameters: [],
    },
    deleteMockSensor: {
        method: 'DELETE',
        path: '/session/:sessionId/sensor/:type',
        variables: ['type'],
        parameters: [],
    },
    deleteSession: {
        method: 'DELETE',
        path: '/session/:sessionId',
        variables: [],
        parameters: [],
    },
    deleteSessionStorageItem: {
        method: 'DELETE',
        path: '/session/:sessionId/session_storage/key/:key',
        variables: ['key'],
        parameters: [],
    },
    dismissAlert: {
        method: 'POST',
        path: '/session/:sessionId/alert/dismiss',
        variables: [],
        parameters: [],
    },
    driverScript: {
        method: 'POST',
        path: '/session/:sessionId/appium/execute_driver',
        variables: [],
        parameters: ['script', 'type', 'timeout'],
    },
    elementClear: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/clear',
        variables: ['elementId'],
        parameters: [],
    },
    elementClick: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/click',
        variables: ['elementId'],
        parameters: [],
    },
    elementEquals: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/equals/:otherId',
        variables: ['elementId', 'otherElementId'],
        parameters: [],
    },
    elementSendKeys: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/value',
        variables: ['elementId'],
        parameters: ['text'],
    },
    elementSubmit: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/submit',
        variables: ['elementId'],
        parameters: [],
    },
    endCoverage: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/end_test_coverage',
        variables: [],
        parameters: ['intent', 'path'],
    },
    executeAsyncScript: {
        method: 'POST',
        path: '/session/:sessionId/execute/async',
        variables: [],
        parameters: ['script', 'args'],
    },
    executeScript: {
        method: 'POST',
        path: '/session/:sessionId/execute/sync',
        variables: [],
        parameters: ['script', 'args'],
    },
    findElement: {
        method: 'POST',
        path: '/session/:sessionId/element',
        variables: [],
        parameters: ['using', 'value'],
    },
    findElementFromElement: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/element',
        variables: ['elementId'],
        parameters: ['using', 'value'],
    },
    findElementFromShadowRoot: {
        method: 'POST',
        path: '/session/:sessionId/shadow/:shadowId/element',
        variables: ['shadowId'],
        parameters: ['using', 'value'],
    },
    findElements: {
        method: 'POST',
        path: '/session/:sessionId/elements',
        variables: [],
        parameters: ['using', 'value'],
    },
    findElementsFromElement: {
        method: 'POST',
        path: '/session/:sessionId/element/:elementId/elements',
        variables: ['elementId'],
        parameters: ['using', 'value'],
    },
    findElementsFromShadowRoot: {
        method: 'POST',
        path: '/session/:sessionId/shadow/:shadowId/elements',
        variables: ['shadowId'],
        parameters: ['using', 'value'],
    },
    fingerPrint: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/finger_print',
        variables: [],
        parameters: ['fingerprintId'],
    },
    forward: {
        method: 'POST',
        path: '/session/:sessionId/forward',
        variables: [],
        parameters: [],
    },
    fullscreenWindow: {
        method: 'POST',
        path: '/session/:sessionId/window/fullscreen',
        variables: [],
        parameters: [],
    },
    generateTestReport: {
        method: 'POST',
        path: '/session/:sessionId/reporting/generate_test_report',
        variables: [],
        parameters: ['message', 'group'],
    },
    getActiveElement: {
        method: 'GET',
        path: '/session/:sessionId/element/active',
        variables: [],
        parameters: [],
    },
    getActiveEngine: {
        method: 'GET',
        path: '/session/:sessionId/ime/active_engine',
        variables: [],
        parameters: [],
    },
    getAlertText: {
        method: 'GET',
        path: '/session/:sessionId/alert/text',
        variables: [],
        parameters: [],
    },
    getAllCookies: {
        method: 'GET',
        path: '/session/:sessionId/cookie',
        variables: [],
        parameters: [],
    },
    getApplicationCacheStatus: {
        method: 'GET',
        path: '/session/:sessionId/application_cache/status',
        variables: [],
        parameters: [],
    },
    getAvailableEngines: {
        method: 'GET',
        path: '/session/:sessionId/ime/available_engines',
        variables: [],
        parameters: [],
    },
    getClipboard: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/get_clipboard',
        variables: [],
        parameters: ['contentType'],
    },
    getContext: {
        method: 'GET',
        path: '/session/:sessionId/context',
        variables: [],
        parameters: [],
    },
    getContexts: {
        method: 'GET',
        path: '/session/:sessionId/contexts',
        variables: [],
        parameters: [],
    },
    getCredentials: {
        method: 'GET',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials',
        variables: ['authenticatorId'],
        parameters: [],
    },
    getCurrentActivity: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/current_activity',
        variables: [],
        parameters: [],
    },
    getCurrentPackage: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/current_package',
        variables: [],
        parameters: [],
    },
    getDeviceTime: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/system_time',
        variables: [],
        parameters: [],
    },
    getDisplayDensity: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/display_density',
        variables: [],
        parameters: [],
    },
    getElementAttribute: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/attribute/:name',
        variables: ['elementId', 'name'],
        parameters: [],
    },
    getElementCSSValue: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/css/:propertyName',
        variables: ['elementId', 'propertyName'],
        parameters: [],
    },
    getElementComputedLabel: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/computedlabel',
        variables: ['elementId'],
        parameters: [],
    },
    getElementComputedRole: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/computedrole',
        variables: ['elementId'],
        parameters: [],
    },
    getElementLocation: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/location',
        variables: ['elementId'],
        parameters: [],
    },
    getElementLocationInView: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/location_in_view',
        variables: ['elementId'],
        parameters: [],
    },
    getElementProperty: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/property/:name',
        variables: ['elementId', 'name'],
        parameters: [],
    },
    getElementRect: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/rect',
        variables: ['elementId'],
        parameters: [],
    },
    getElementShadowRoot: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/shadow',
        variables: ['elementId'],
        parameters: [],
    },
    getElementSize: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/size',
        variables: ['elementId'],
        parameters: [],
    },
    getElementTagName: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/name',
        variables: ['elementId'],
        parameters: [],
    },
    getElementText: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/text',
        variables: ['elementId'],
        parameters: [],
    },
    getEvents: {
        method: 'POST',
        path: '/session/:sessionId/appium/events',
        variables: [],
        parameters: ['type'],
    },
    getGeoLocation: {
        method: 'GET',
        path: '/session/:sessionId/location',
        variables: [],
        parameters: [],
    },
    getLocalStorage: {
        method: 'GET',
        path: '/session/:sessionId/local_storage',
        variables: [],
        parameters: [],
    },
    getLocalStorageItem: {
        method: 'GET',
        path: '/session/:sessionId/local_storage/key/:key',
        variables: ['key'],
        parameters: [],
    },
    getLocalStorageSize: {
        method: 'GET',
        path: '/session/:sessionId/local_storage/size',
        variables: [],
        parameters: [],
    },
    getLogTypes: {
        method: 'GET',
        path: '/session/:sessionId/log/types',
        variables: [],
        parameters: [],
    },
    getLogs: {
        method: 'POST',
        path: '/session/:sessionId/log',
        variables: [],
        parameters: ['type'],
    },
    getMockSensor: {
        method: 'GET',
        path: '/session/:sessionId/sensor/:type',
        variables: ['type'],
        parameters: [],
    },
    getNamedCookie: {
        method: 'GET',
        path: '/session/:sessionId/cookie/:name',
        variables: ['name'],
        parameters: [],
    },
    getNetworkConnection: {
        method: 'GET',
        path: '/session/:sessionId/network_connection',
        variables: [],
        parameters: [],
    },
    getOrientation: {
        method: 'GET',
        path: '/session/:sessionId/orientation',
        variables: [],
        parameters: [],
    },
    getPageIndex: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/pageIndex',
        variables: [],
        parameters: [],
    },
    getPageSource: {
        method: 'GET',
        path: '/session/:sessionId/source',
        variables: [],
        parameters: [],
    },
    getPerformanceData: {
        method: 'POST',
        path: '/session/:sessionId/appium/getPerformanceData',
        variables: [],
        parameters: ['packageName', 'dataType', 'dataReadTimeout'],
    },
    getPerformanceDataTypes: {
        method: 'POST',
        path: '/session/:sessionId/appium/performanceData/types',
        variables: [],
        parameters: [],
    },
    getSession: {
        method: 'GET',
        path: '/session/:sessionId',
        variables: [],
        parameters: [],
    },
    getSessionStorage: {
        method: 'GET',
        path: '/session/:sessionId/session_storage',
        variables: [],
        parameters: [],
    },
    getSessionStorageItem: {
        method: 'GET',
        path: '/session/:sessionId/session_storage/key/:key',
        variables: ['key'],
        parameters: [],
    },
    getSessionStorageSize: {
        method: 'GET',
        path: '/session/:sessionId/session_storage/size',
        variables: [],
        parameters: [],
    },
    getSessions: {
        method: 'GET',
        path: '/sessions',
        variables: [],
        parameters: [],
    },
    getSettings: {
        method: 'GET',
        path: '/session/:sessionId/appium/settings',
        variables: [],
        parameters: [],
    },
    getStrings: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/strings',
        variables: [],
        parameters: ['language', 'stringFile'],
    },
    getSystemBars: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/system_bars',
        variables: [],
        parameters: [],
    },
    getTimeouts: {
        method: 'GET',
        path: '/session/:sessionId/timeouts',
        variables: [],
        parameters: [],
    },
    getTitle: {
        method: 'GET',
        path: '/session/:sessionId/title',
        variables: [],
        parameters: [],
    },
    getUrl: {
        method: 'GET',
        path: '/session/:sessionId/url',
        variables: [],
        parameters: [],
    },
    getWindowHandle: {
        method: 'GET',
        path: '/session/:sessionId/window',
        variables: [],
        parameters: [],
    },
    getWindowHandles: {
        method: 'GET',
        path: '/session/:sessionId/window/handles',
        variables: [],
        parameters: [],
    },
    getWindowPosition: {
        method: 'GET',
        path: '/session/:sessionId/window/current/position',
        variables: [],
        parameters: [],
    },
    getWindowRect: {
        method: 'GET',
        path: '/session/:sessionId/window/rect',
        variables: [],
        parameters: [],
    },
    gsmCall: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/gsm_call',
        variables: [],
        parameters: ['phoneNumber', 'action'],
    },
    gsmSignal: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/gsm_signal',
        variables: [],
        parameters: ['signalStrength', 'signalStrengh'],
    },
    gsmVoice: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/gsm_voice',
        variables: [],
        parameters: ['state'],
    },
    hideKeyboard: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/hide_keyboard',
        variables: [],
        parameters: ['strategy', 'key', 'keyCode', 'keyName'],
    },
    installApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/install_app',
        variables: [],
        parameters: ['appPath'],
    },
    isAppInstalled: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/app_installed',
        variables: [],
        parameters: ['appId'],
    },
    isElementDisplayed: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/displayed',
        variables: ['elementId'],
        parameters: [],
    },
    isElementEnabled: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/enabled',
        variables: ['elementId'],
        parameters: [],
    },
    isElementSelected: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/selected',
        variables: ['elementId'],
        parameters: [],
    },
    isIMEActivated: {
        method: 'GET',
        path: '/session/:sessionId/ime/activated',
        variables: [],
        parameters: [],
    },
    isKeyboardShown: {
        method: 'GET',
        path: '/session/:sessionId/appium/device/is_keyboard_shown',
        variables: [],
        parameters: [],
    },
    isLocked: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/is_locked',
        variables: [],
        parameters: [],
    },
    launchApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/launch',
        variables: [],
        parameters: [],
    },
    lock: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/lock',
        variables: [],
        parameters: ['seconds'],
    },
    logEvent: {
        method: 'POST',
        path: '/session/:sessionId/appium/log_event',
        variables: [],
        parameters: ['vendor', 'event'],
    },
    longPressKeyCode: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/long_press_keycode',
        variables: [],
        parameters: ['keycode', 'metastate', 'flags'],
    },
    maximizeWindow: {
        method: 'POST',
        path: '/session/:sessionId/window/maximize',
        variables: [],
        parameters: [],
    },
    minimizeWindow: {
        method: 'POST',
        path: '/session/:sessionId/window/minimize',
        variables: [],
        parameters: [],
    },
    moveToElement: {
        method: 'POST',
        path: '/session/:sessionId/moveto',
        variables: [],
        parameters: ['element', 'xoffset', 'yoffset'],
    },
    multiTouchPerform: {
        method: 'POST',
        path: '/session/:sessionId/touch/multi/perform',
        variables: [],
        parameters: ['actions'],
    },
    navigateTo: {
        method: 'POST',
        path: '/session/:sessionId/url',
        variables: [],
        parameters: ['url'],
    },
    newSession: {
        method: 'POST',
        path: '/session',
        variables: [],
        parameters: ['capabilities'],
    },
    openNotifications: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/open_notifications',
        variables: [],
        parameters: [],
    },
    performActions: {
        method: 'POST',
        path: '/session/:sessionId/actions',
        variables: [],
        parameters: ['actions'],
    },
    positionClick: {
        method: 'POST',
        path: '/session/:sessionId/click',
        variables: [],
        parameters: ['button'],
    },
    positionDoubleClick: {
        method: 'POST',
        path: '/session/:sessionId/doubleclick',
        variables: [],
        parameters: [],
    },
    powerAC: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/power_ac',
        variables: [],
        parameters: ['state'],
    },
    powerCapacity: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/power_capacity',
        variables: [],
        parameters: ['percent'],
    },
    pressKeyCode: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/press_keycode',
        variables: [],
        parameters: ['keycode', 'metastate', 'flags'],
    },
    printPage: {
        method: 'POST',
        path: '/session/:sessionId/print',
        variables: [],
        parameters: [
            'orientation',
            'scale',
            'background',
            'width',
            'height',
            'top',
            'bottom',
            'left',
            'right',
            'shrinkToFit',
            'pageRanges',
        ],
    },
    pullFile: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/pull_file',
        variables: [],
        parameters: ['path'],
    },
    pullFolder: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/pull_folder',
        variables: [],
        parameters: ['path'],
    },
    pushFile: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/push_file',
        variables: [],
        parameters: ['path', 'data'],
    },
    queryAppState: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/app_state',
        variables: [],
        parameters: ['appId'],
    },
    receiveAsyncResponse: {
        method: 'POST',
        path: '/session/:sessionId/appium/receive_async_response',
        variables: [],
        parameters: ['response'],
    },
    refresh: {
        method: 'POST',
        path: '/session/:sessionId/refresh',
        variables: [],
        parameters: [],
    },
    releaseActions: {
        method: 'DELETE',
        path: '/session/:sessionId/actions',
        variables: [],
        parameters: [],
    },
    removeAllCredentials: {
        method: 'DELETE',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials',
        variables: ['authenticatorId'],
        parameters: [],
    },
    removeApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/remove_app',
        variables: [],
        parameters: ['appId'],
    },
    removeCredential: {
        method: 'DELETE',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials/:credentialId',
        variables: ['authenticatorId', 'credentialId'],
        parameters: [],
    },
    removeVirtualAuthenticator: {
        method: 'DELETE',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId',
        variables: ['authenticatorId'],
        parameters: [],
    },
    replaceValue: {
        method: 'POST',
        path: '/session/:sessionId/appium/element/:elementId/replace_value',
        variables: ['elementId'],
        parameters: ['value'],
    },
    reset: {
        method: 'POST',
        path: '/session/:sessionId/appium/app/reset',
        variables: [],
        parameters: [],
    },
    rotateDevice: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/rotate',
        variables: [],
        parameters: [
            'x',
            'y',
            'radius',
            'rotation',
            'touchCount',
            'duration',
            'element',
        ],
    },
    sendAlertText: {
        method: 'POST',
        path: '/session/:sessionId/alert/text',
        variables: [],
        parameters: ['text'],
    },
    sendKeyEvent: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/keyevent',
        variables: [],
        parameters: ['keycode', 'metastate'],
    },
    sendKeys: {
        method: 'POST',
        path: '/session/:sessionId/keys',
        variables: [],
        parameters: ['value'],
    },
    sendSms: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/send_sms',
        variables: [],
        parameters: ['phoneNumber', 'message'],
    },
    setAsyncTimeout: {
        method: 'POST',
        path: '/session/:sessionId/timeouts/async_script',
        variables: [],
        parameters: ['ms'],
    },
    setClipboard: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/set_clipboard',
        variables: [],
        parameters: ['content', 'contentType', 'label'],
    },
    setGeoLocation: {
        method: 'POST',
        path: '/session/:sessionId/location',
        variables: [],
        parameters: ['location'],
    },
    setImplicitTimeout: {
        method: 'POST',
        path: '/session/:sessionId/timeouts/implicit_wait',
        variables: [],
        parameters: ['ms'],
    },
    setLocalStorage: {
        method: 'POST',
        path: '/session/:sessionId/local_storage',
        variables: [],
        parameters: ['key', 'value'],
    },
    setNetworkConnection: {
        method: 'POST',
        path: '/session/:sessionId/network_connection',
        variables: [],
        parameters: ['type'],
    },
    setOrientation: {
        method: 'POST',
        path: '/session/:sessionId/orientation',
        variables: [],
        parameters: ['orientation'],
    },
    setPermissions: {
        method: 'POST',
        path: '/session/:sessionId/permissions',
        variables: [],
        parameters: ['descriptor', 'state', 'oneRealm'],
    },
    setSessionStorage: {
        method: 'POST',
        path: '/session/:sessionId/session_storage',
        variables: [],
        parameters: ['key', 'value'],
    },
    setTimeZone: {
        method: 'POST',
        path: '/session/:sessionId/time_zone',
        variables: [],
        parameters: ['time_zone'],
    },
    setTimeouts: {
        method: 'POST',
        path: '/session/:sessionId/timeouts',
        variables: [],
        parameters: ['implicit', 'pageLoad', 'script'],
    },
    setUserVerified: {
        method: 'POST',
        path: '/session/:sessionId/webauthn/authenticator/:authenticatorId/credentials/:credentialId/uv',
        variables: ['authenticatorId', 'credentialId'],
        parameters: [],
    },
    setValueImmediate: {
        method: 'POST',
        path: '/session/:sessionId/appium/element/:elementId/value',
        variables: ['elementId'],
        parameters: ['value'],
    },
    setWindowPosition: {
        method: 'POST',
        path: '/session/:sessionId/window/current/position',
        variables: [],
        parameters: ['x', 'y'],
    },
    setWindowRect: {
        method: 'POST',
        path: '/session/:sessionId/window/rect',
        variables: [],
        parameters: ['x', 'y', 'width', 'height'],
    },
    shake: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/shake',
        variables: [],
        parameters: [],
    },
    startActivity: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/start_activity',
        variables: [],
        parameters: [
            'appPackage',
            'appActivity',
            'appWaitPackage',
            'appWaitActivity',
            'intentAction',
            'intentCategory',
            'intentFlags',
            'optionalIntentArguments',
            'dontStopAppOnReset',
        ],
    },
    startRecordingScreen: {
        method: 'POST',
        path: '/session/:sessionId/appium/start_recording_screen',
        variables: [],
        parameters: ['options'],
    },
    status: { method: 'GET', path: '/status', variables: [], parameters: [] },
    stopRecordingScreen: {
        method: 'POST',
        path: '/session/:sessionId/appium/stop_recording_screen',
        variables: [],
        parameters: ['remotePath', 'username', 'password', 'method'],
    },
    switchContext: {
        method: 'POST',
        path: '/session/:sessionId/context',
        variables: [],
        parameters: ['name'],
    },
    switchToFrame: {
        method: 'POST',
        path: '/session/:sessionId/frame',
        variables: [],
        parameters: ['id'],
    },
    switchToParentFrame: {
        method: 'POST',
        path: '/session/:sessionId/frame/parent',
        variables: [],
        parameters: [],
    },
    switchToWindow: {
        method: 'POST',
        path: '/session/:sessionId/window',
        variables: [],
        parameters: ['handle'],
    },
    takeElementScreenshot: {
        method: 'GET',
        path: '/session/:sessionId/element/:elementId/screenshot',
        variables: ['elementId'],
        parameters: ['scroll'],
    },
    takeScreenshot: {
        method: 'GET',
        path: '/session/:sessionId/screenshot',
        variables: [],
        parameters: [],
    },
    terminateApp: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/terminate_app',
        variables: [],
        parameters: ['appId'],
    },
    toggleAirplaneMode: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/toggle_airplane_mode',
        variables: [],
        parameters: [],
    },
    toggleData: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/toggle_data',
        variables: [],
        parameters: [],
    },
    toggleEnrollTouchId: {
        method: 'POST',
        path: '/session/:sessionId/appium/simulator/toggle_touch_id_enrollment',
        variables: [],
        parameters: ['enabled'],
    },
    toggleLocationServices: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/toggle_location_services',
        variables: [],
        parameters: [],
    },
    toggleNetworkSpeed: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/network_speed',
        variables: [],
        parameters: ['netspeed'],
    },
    toggleWiFi: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/toggle_wifi',
        variables: [],
        parameters: [],
    },
    touchClick: {
        method: 'POST',
        path: '/session/:sessionId/touch/click',
        variables: [],
        parameters: ['element'],
    },
    touchDoubleClick: {
        method: 'POST',
        path: '/session/:sessionId/touch/doubleclick',
        variables: [],
        parameters: ['element'],
    },
    touchDown: {
        method: 'POST',
        path: '/session/:sessionId/touch/down',
        variables: [],
        parameters: ['x', 'y'],
    },
    touchFlick: {
        method: 'POST',
        path: '/session/:sessionId/touch/flick',
        variables: [],
        parameters: ['xoffset', 'yoffset', 'element', 'speed', 'xspeed', 'yspeed'],
    },
    touchId: {
        method: 'POST',
        path: '/session/:sessionId/appium/simulator/touch_id',
        variables: [],
        parameters: ['match'],
    },
    touchLongClick: {
        method: 'POST',
        path: '/session/:sessionId/touch/longclick',
        variables: [],
        parameters: ['element'],
    },
    touchMove: {
        method: 'POST',
        path: '/session/:sessionId/touch/move',
        variables: [],
        parameters: ['x', 'y'],
    },
    touchPerform: {
        method: 'POST',
        path: '/session/:sessionId/touch/perform',
        variables: [],
        parameters: ['actions'],
    },
    touchScroll: {
        method: 'POST',
        path: '/session/:sessionId/touch/scroll',
        variables: [],
        parameters: ['xoffset', 'yoffset', 'element'],
    },
    touchUp: {
        method: 'POST',
        path: '/session/:sessionId/touch/up',
        variables: [],
        parameters: ['x', 'y'],
    },
    unlock: {
        method: 'POST',
        path: '/session/:sessionId/appium/device/unlock',
        variables: [],
        parameters: [],
    },
    updateMockSensor: {
        method: 'POST',
        path: '/session/:sessionId/sensor/:type',
        variables: ['type'],
        parameters: [
            'mockSensorType',
            'maxSamplingFrequency',
            'minSamplingFrequency',
        ],
    },
    updateSettings: {
        method: 'POST',
        path: '/session/:sessionId/appium/settings',
        variables: [],
        parameters: ['settings'],
    },
};
