/* tslint:disable */
/* eslint-disable */
/**
 * Daytona Toolbox API
 * Daytona Toolbox API
 *
 * The version of the OpenAPI document: v0.0.0-dev
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import globalAxios from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction, replaceWithSerializableTypeIfNeeded } from '../common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
// @ts-ignore
import type { AccessibilityInvokeRequest } from '../models';
// @ts-ignore
import type { AccessibilityNodeRequest } from '../models';
// @ts-ignore
import type { AccessibilityNodesResponse } from '../models';
// @ts-ignore
import type { AccessibilitySetValueRequest } from '../models';
// @ts-ignore
import type { AccessibilityTreeResponse } from '../models';
// @ts-ignore
import type { ComputerUseStartResponse } from '../models';
// @ts-ignore
import type { ComputerUseStatusResponse } from '../models';
// @ts-ignore
import type { ComputerUseStopResponse } from '../models';
// @ts-ignore
import type { DisplayInfoResponse } from '../models';
// @ts-ignore
import type { FindAccessibilityNodesRequest } from '../models';
// @ts-ignore
import type { KeyboardHotkeyRequest } from '../models';
// @ts-ignore
import type { KeyboardPressRequest } from '../models';
// @ts-ignore
import type { KeyboardTypeRequest } from '../models';
// @ts-ignore
import type { ListRecordingsResponse } from '../models';
// @ts-ignore
import type { MouseClickRequest } from '../models';
// @ts-ignore
import type { MouseClickResponse } from '../models';
// @ts-ignore
import type { MouseDragRequest } from '../models';
// @ts-ignore
import type { MouseDragResponse } from '../models';
// @ts-ignore
import type { MouseMoveRequest } from '../models';
// @ts-ignore
import type { MousePositionResponse } from '../models';
// @ts-ignore
import type { MouseScrollRequest } from '../models';
// @ts-ignore
import type { ProcessErrorsResponse } from '../models';
// @ts-ignore
import type { ProcessLogsResponse } from '../models';
// @ts-ignore
import type { ProcessRestartResponse } from '../models';
// @ts-ignore
import type { ProcessStatusResponse } from '../models';
// @ts-ignore
import type { Recording } from '../models';
// @ts-ignore
import type { ScreenshotResponse } from '../models';
// @ts-ignore
import type { ScrollResponse } from '../models';
// @ts-ignore
import type { StartRecordingRequest } from '../models';
// @ts-ignore
import type { StopRecordingRequest } from '../models';
// @ts-ignore
import type { WindowsResponse } from '../models';
/**
 * ComputerUseApi - axios parameter creator
 */
export const ComputerUseApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Click the mouse button at the specified coordinates
         * @summary Click mouse button
         * @param {MouseClickRequest} request Mouse click request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        click: async (request: MouseClickRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('click', 'request', request)
            const localVarPath = `/computeruse/mouse/click`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Delete a recording file by ID
         * @summary Delete a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRecording: async (id: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('deleteRecording', 'id', id)
            const localVarPath = `/computeruse/recordings/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = '*/*';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Download a recording by providing its ID
         * @summary Download a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadRecording: async (id: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('downloadRecording', 'id', id)
            const localVarPath = `/computeruse/recordings/{id}/download`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/octet-stream';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Drag the mouse from start to end coordinates
         * @summary Drag mouse
         * @param {MouseDragRequest} request Mouse drag request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        drag: async (request: MouseDragRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('drag', 'request', request)
            const localVarPath = `/computeruse/mouse/drag`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
         * @summary Find accessibility nodes
         * @param {FindAccessibilityNodesRequest} request Find request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccessibilityNodes: async (request: FindAccessibilityNodesRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('findAccessibilityNodes', 'request', request)
            const localVarPath = `/computeruse/a11y/find`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
         * @summary Focus an accessibility node
         * @param {AccessibilityNodeRequest} request Node focus request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        focusAccessibilityNode: async (request: AccessibilityNodeRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('focusAccessibilityNode', 'request', request)
            const localVarPath = `/computeruse/a11y/node/focus`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
         * @summary Get accessibility tree
         * @param {string} [scope] Scope: focused | pid | all (default: focused)
         * @param {number} [pid] Process ID when scope&#x3D;pid
         * @param {number} [maxDepth] Max tree depth (-1 unbounded, 0 root only; default -1)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccessibilityTree: async (scope?: string, pid?: number, maxDepth?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/a11y/tree`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (scope !== undefined) {
                localVarQueryParameter['scope'] = scope;
            }

            if (pid !== undefined) {
                localVarQueryParameter['pid'] = pid;
            }

            if (maxDepth !== undefined) {
                localVarQueryParameter['maxDepth'] = maxDepth;
            }

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get the status of all computer use processes
         * @summary Get computer use process status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getComputerUseStatus: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/process-status`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get the current status of the computer use system
         * @summary Get computer use status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getComputerUseSystemStatus: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/status`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get information about all available displays
         * @summary Get display information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDisplayInfo: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/display/info`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get the current mouse cursor position
         * @summary Get mouse position
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMousePosition: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/mouse/position`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get errors for a specific computer use process
         * @summary Get process errors
         * @param {string} processName Process name to get errors for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessErrors: async (processName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'processName' is not null or undefined
            assertParamExists('getProcessErrors', 'processName', processName)
            const localVarPath = `/computeruse/process/{processName}/errors`
                .replace(`{${"processName"}}`, encodeURIComponent(String(processName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get logs for a specific computer use process
         * @summary Get process logs
         * @param {string} processName Process name to get logs for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessLogs: async (processName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'processName' is not null or undefined
            assertParamExists('getProcessLogs', 'processName', processName)
            const localVarPath = `/computeruse/process/{processName}/logs`
                .replace(`{${"processName"}}`, encodeURIComponent(String(processName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Check if a specific computer use process is running
         * @summary Get specific process status
         * @param {string} processName Process name to check
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessStatus: async (processName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'processName' is not null or undefined
            assertParamExists('getProcessStatus', 'processName', processName)
            const localVarPath = `/computeruse/process/{processName}/status`
                .replace(`{${"processName"}}`, encodeURIComponent(String(processName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get details of a specific recording by ID
         * @summary Get recording details
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecording: async (id: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'id' is not null or undefined
            assertParamExists('getRecording', 'id', id)
            const localVarPath = `/computeruse/recordings/{id}`
                .replace(`{${"id"}}`, encodeURIComponent(String(id)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get information about all open windows
         * @summary Get windows information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getWindows: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/display/windows`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Call an AT-SPI Action on the node. Leave action empty to invoke the node\'s primary (first) action.
         * @summary Invoke an action on an accessibility node
         * @param {AccessibilityInvokeRequest} request Invoke request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        invokeAccessibilityNode: async (request: AccessibilityInvokeRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('invokeAccessibilityNode', 'request', request)
            const localVarPath = `/computeruse/a11y/node/invoke`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Get a list of all recordings (active and completed)
         * @summary List all recordings
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listRecordings: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/recordings`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Move the mouse cursor to the specified coordinates
         * @summary Move mouse cursor
         * @param {MouseMoveRequest} request Mouse move request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        moveMouse: async (request: MouseMoveRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('moveMouse', 'request', request)
            const localVarPath = `/computeruse/mouse/move`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Press a hotkey combination (e.g., ctrl+c, cmd+v)
         * @summary Press hotkey
         * @param {KeyboardHotkeyRequest} request Hotkey press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pressHotkey: async (request: KeyboardHotkeyRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('pressHotkey', 'request', request)
            const localVarPath = `/computeruse/keyboard/hotkey`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Press a key with optional modifiers
         * @summary Press key
         * @param {KeyboardPressRequest} request Key press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pressKey: async (request: KeyboardPressRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('pressKey', 'request', request)
            const localVarPath = `/computeruse/keyboard/key`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Restart a specific computer use process
         * @summary Restart specific process
         * @param {string} processName Process name to restart
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        restartProcess: async (processName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'processName' is not null or undefined
            assertParamExists('restartProcess', 'processName', processName)
            const localVarPath = `/computeruse/process/{processName}/restart`
                .replace(`{${"processName"}}`, encodeURIComponent(String(processName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Scroll the mouse wheel at the specified coordinates
         * @summary Scroll mouse wheel
         * @param {MouseScrollRequest} request Mouse scroll request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        scroll: async (request: MouseScrollRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('scroll', 'request', request)
            const localVarPath = `/computeruse/mouse/scroll`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
         * @summary Set the value of an accessibility node
         * @param {AccessibilitySetValueRequest} request Set value request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setAccessibilityNodeValue: async (request: AccessibilitySetValueRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('setAccessibilityNodeValue', 'request', request)
            const localVarPath = `/computeruse/a11y/node/value`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Start all computer use processes and return their status
         * @summary Start computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        startComputerUse: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/start`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Start a new screen recording session
         * @summary Start a new recording
         * @param {StartRecordingRequest} [request] Recording options
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        startRecording: async (request?: StartRecordingRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/recordings/start`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Stop all computer use processes and return their status
         * @summary Stop computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopComputerUse: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/stop`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Stop an active screen recording session
         * @summary Stop a recording
         * @param {StopRecordingRequest} request Recording ID to stop
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopRecording: async (request: StopRecordingRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('stopRecording', 'request', request)
            const localVarPath = `/computeruse/recordings/stop`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Take a compressed screenshot of a specific region of the screen
         * @summary Take a compressed region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeCompressedRegionScreenshot: async (x: number, y: number, width: number, height: number, showCursor?: boolean, format?: string, quality?: number, scale?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'x' is not null or undefined
            assertParamExists('takeCompressedRegionScreenshot', 'x', x)
            // verify required parameter 'y' is not null or undefined
            assertParamExists('takeCompressedRegionScreenshot', 'y', y)
            // verify required parameter 'width' is not null or undefined
            assertParamExists('takeCompressedRegionScreenshot', 'width', width)
            // verify required parameter 'height' is not null or undefined
            assertParamExists('takeCompressedRegionScreenshot', 'height', height)
            const localVarPath = `/computeruse/screenshot/region/compressed`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (x !== undefined) {
                localVarQueryParameter['x'] = x;
            }

            if (y !== undefined) {
                localVarQueryParameter['y'] = y;
            }

            if (width !== undefined) {
                localVarQueryParameter['width'] = width;
            }

            if (height !== undefined) {
                localVarQueryParameter['height'] = height;
            }

            if (showCursor !== undefined) {
                localVarQueryParameter['showCursor'] = showCursor;
            }

            if (format !== undefined) {
                localVarQueryParameter['format'] = format;
            }

            if (quality !== undefined) {
                localVarQueryParameter['quality'] = quality;
            }

            if (scale !== undefined) {
                localVarQueryParameter['scale'] = scale;
            }

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Take a compressed screenshot of the entire screen
         * @summary Take a compressed screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeCompressedScreenshot: async (showCursor?: boolean, format?: string, quality?: number, scale?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/screenshot/compressed`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (showCursor !== undefined) {
                localVarQueryParameter['showCursor'] = showCursor;
            }

            if (format !== undefined) {
                localVarQueryParameter['format'] = format;
            }

            if (quality !== undefined) {
                localVarQueryParameter['quality'] = quality;
            }

            if (scale !== undefined) {
                localVarQueryParameter['scale'] = scale;
            }

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Take a screenshot of a specific region of the screen
         * @summary Take a region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeRegionScreenshot: async (x: number, y: number, width: number, height: number, showCursor?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'x' is not null or undefined
            assertParamExists('takeRegionScreenshot', 'x', x)
            // verify required parameter 'y' is not null or undefined
            assertParamExists('takeRegionScreenshot', 'y', y)
            // verify required parameter 'width' is not null or undefined
            assertParamExists('takeRegionScreenshot', 'width', width)
            // verify required parameter 'height' is not null or undefined
            assertParamExists('takeRegionScreenshot', 'height', height)
            const localVarPath = `/computeruse/screenshot/region`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (x !== undefined) {
                localVarQueryParameter['x'] = x;
            }

            if (y !== undefined) {
                localVarQueryParameter['y'] = y;
            }

            if (width !== undefined) {
                localVarQueryParameter['width'] = width;
            }

            if (height !== undefined) {
                localVarQueryParameter['height'] = height;
            }

            if (showCursor !== undefined) {
                localVarQueryParameter['showCursor'] = showCursor;
            }

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Take a screenshot of the entire screen
         * @summary Take a screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeScreenshot: async (showCursor?: boolean, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/computeruse/screenshot`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            if (showCursor !== undefined) {
                localVarQueryParameter['showCursor'] = showCursor;
            }

            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Type text with optional delay between keystrokes
         * @summary Type text
         * @param {KeyboardTypeRequest} request Text typing request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        typeText: async (request: KeyboardTypeRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'request' is not null or undefined
            assertParamExists('typeText', 'request', request)
            const localVarPath = `/computeruse/keyboard/type`;
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            localVarHeaderParameter['Content-Type'] = 'application/json';
            localVarHeaderParameter['Accept'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(request, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * ComputerUseApi - functional programming interface
 */
export const ComputerUseApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = ComputerUseApiAxiosParamCreator(configuration)
    return {
        /**
         * Click the mouse button at the specified coordinates
         * @summary Click mouse button
         * @param {MouseClickRequest} request Mouse click request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async click(request: MouseClickRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MouseClickResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.click(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.click']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Delete a recording file by ID
         * @summary Delete a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteRecording(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteRecording(id, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.deleteRecording']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Download a recording by providing its ID
         * @summary Download a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async downloadRecording(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.downloadRecording(id, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.downloadRecording']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Drag the mouse from start to end coordinates
         * @summary Drag mouse
         * @param {MouseDragRequest} request Mouse drag request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async drag(request: MouseDragRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MouseDragResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.drag(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.drag']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
         * @summary Find accessibility nodes
         * @param {FindAccessibilityNodesRequest} request Find request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async findAccessibilityNodes(request: FindAccessibilityNodesRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccessibilityNodesResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.findAccessibilityNodes(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.findAccessibilityNodes']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
         * @summary Focus an accessibility node
         * @param {AccessibilityNodeRequest} request Node focus request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async focusAccessibilityNode(request: AccessibilityNodeRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.focusAccessibilityNode(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.focusAccessibilityNode']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
         * @summary Get accessibility tree
         * @param {string} [scope] Scope: focused | pid | all (default: focused)
         * @param {number} [pid] Process ID when scope&#x3D;pid
         * @param {number} [maxDepth] Max tree depth (-1 unbounded, 0 root only; default -1)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAccessibilityTree(scope?: string, pid?: number, maxDepth?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AccessibilityTreeResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAccessibilityTree(scope, pid, maxDepth, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getAccessibilityTree']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get the status of all computer use processes
         * @summary Get computer use process status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getComputerUseStatus(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ComputerUseStatusResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getComputerUseStatus(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getComputerUseStatus']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get the current status of the computer use system
         * @summary Get computer use status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getComputerUseSystemStatus(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ComputerUseStatusResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getComputerUseSystemStatus(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getComputerUseSystemStatus']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get information about all available displays
         * @summary Get display information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getDisplayInfo(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DisplayInfoResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getDisplayInfo(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getDisplayInfo']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get the current mouse cursor position
         * @summary Get mouse position
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getMousePosition(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MousePositionResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getMousePosition(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getMousePosition']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get errors for a specific computer use process
         * @summary Get process errors
         * @param {string} processName Process name to get errors for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getProcessErrors(processName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProcessErrorsResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getProcessErrors(processName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getProcessErrors']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get logs for a specific computer use process
         * @summary Get process logs
         * @param {string} processName Process name to get logs for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getProcessLogs(processName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProcessLogsResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getProcessLogs(processName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getProcessLogs']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Check if a specific computer use process is running
         * @summary Get specific process status
         * @param {string} processName Process name to check
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getProcessStatus(processName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProcessStatusResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getProcessStatus(processName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getProcessStatus']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get details of a specific recording by ID
         * @summary Get recording details
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getRecording(id: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Recording>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getRecording(id, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getRecording']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get information about all open windows
         * @summary Get windows information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getWindows(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<WindowsResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getWindows(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.getWindows']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Call an AT-SPI Action on the node. Leave action empty to invoke the node\'s primary (first) action.
         * @summary Invoke an action on an accessibility node
         * @param {AccessibilityInvokeRequest} request Invoke request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async invokeAccessibilityNode(request: AccessibilityInvokeRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.invokeAccessibilityNode(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.invokeAccessibilityNode']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Get a list of all recordings (active and completed)
         * @summary List all recordings
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listRecordings(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListRecordingsResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listRecordings(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.listRecordings']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Move the mouse cursor to the specified coordinates
         * @summary Move mouse cursor
         * @param {MouseMoveRequest} request Mouse move request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async moveMouse(request: MouseMoveRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<MousePositionResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.moveMouse(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.moveMouse']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Press a hotkey combination (e.g., ctrl+c, cmd+v)
         * @summary Press hotkey
         * @param {KeyboardHotkeyRequest} request Hotkey press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pressHotkey(request: KeyboardHotkeyRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pressHotkey(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.pressHotkey']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Press a key with optional modifiers
         * @summary Press key
         * @param {KeyboardPressRequest} request Key press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async pressKey(request: KeyboardPressRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.pressKey(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.pressKey']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Restart a specific computer use process
         * @summary Restart specific process
         * @param {string} processName Process name to restart
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async restartProcess(processName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ProcessRestartResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.restartProcess(processName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.restartProcess']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Scroll the mouse wheel at the specified coordinates
         * @summary Scroll mouse wheel
         * @param {MouseScrollRequest} request Mouse scroll request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async scroll(request: MouseScrollRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ScrollResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.scroll(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.scroll']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
         * @summary Set the value of an accessibility node
         * @param {AccessibilitySetValueRequest} request Set value request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async setAccessibilityNodeValue(request: AccessibilitySetValueRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.setAccessibilityNodeValue(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.setAccessibilityNodeValue']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Start all computer use processes and return their status
         * @summary Start computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async startComputerUse(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ComputerUseStartResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.startComputerUse(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.startComputerUse']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Start a new screen recording session
         * @summary Start a new recording
         * @param {StartRecordingRequest} [request] Recording options
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async startRecording(request?: StartRecordingRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Recording>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.startRecording(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.startRecording']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Stop all computer use processes and return their status
         * @summary Stop computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async stopComputerUse(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ComputerUseStopResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.stopComputerUse(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.stopComputerUse']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Stop an active screen recording session
         * @summary Stop a recording
         * @param {StopRecordingRequest} request Recording ID to stop
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async stopRecording(request: StopRecordingRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Recording>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.stopRecording(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.stopRecording']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Take a compressed screenshot of a specific region of the screen
         * @summary Take a compressed region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async takeCompressedRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ScreenshotResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.takeCompressedRegionScreenshot(x, y, width, height, showCursor, format, quality, scale, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.takeCompressedRegionScreenshot']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Take a compressed screenshot of the entire screen
         * @summary Take a compressed screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async takeCompressedScreenshot(showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ScreenshotResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.takeCompressedScreenshot(showCursor, format, quality, scale, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.takeCompressedScreenshot']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Take a screenshot of a specific region of the screen
         * @summary Take a region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async takeRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ScreenshotResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.takeRegionScreenshot(x, y, width, height, showCursor, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.takeRegionScreenshot']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Take a screenshot of the entire screen
         * @summary Take a screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async takeScreenshot(showCursor?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ScreenshotResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.takeScreenshot(showCursor, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.takeScreenshot']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Type text with optional delay between keystrokes
         * @summary Type text
         * @param {KeyboardTypeRequest} request Text typing request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async typeText(request: KeyboardTypeRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<object>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.typeText(request, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['ComputerUseApi.typeText']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
    }
};

/**
 * ComputerUseApi - factory interface
 */
export const ComputerUseApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = ComputerUseApiFp(configuration)
    return {
        /**
         * Click the mouse button at the specified coordinates
         * @summary Click mouse button
         * @param {MouseClickRequest} request Mouse click request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        click(request: MouseClickRequest, options?: RawAxiosRequestConfig): AxiosPromise<MouseClickResponse> {
            return localVarFp.click(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Delete a recording file by ID
         * @summary Delete a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteRecording(id: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.deleteRecording(id, options).then((request) => request(axios, basePath));
        },
        /**
         * Download a recording by providing its ID
         * @summary Download a recording
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadRecording(id: string, options?: RawAxiosRequestConfig): AxiosPromise<File> {
            return localVarFp.downloadRecording(id, options).then((request) => request(axios, basePath));
        },
        /**
         * Drag the mouse from start to end coordinates
         * @summary Drag mouse
         * @param {MouseDragRequest} request Mouse drag request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        drag(request: MouseDragRequest, options?: RawAxiosRequestConfig): AxiosPromise<MouseDragResponse> {
            return localVarFp.drag(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
         * @summary Find accessibility nodes
         * @param {FindAccessibilityNodesRequest} request Find request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        findAccessibilityNodes(request: FindAccessibilityNodesRequest, options?: RawAxiosRequestConfig): AxiosPromise<AccessibilityNodesResponse> {
            return localVarFp.findAccessibilityNodes(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
         * @summary Focus an accessibility node
         * @param {AccessibilityNodeRequest} request Node focus request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        focusAccessibilityNode(request: AccessibilityNodeRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.focusAccessibilityNode(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
         * @summary Get accessibility tree
         * @param {string} [scope] Scope: focused | pid | all (default: focused)
         * @param {number} [pid] Process ID when scope&#x3D;pid
         * @param {number} [maxDepth] Max tree depth (-1 unbounded, 0 root only; default -1)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAccessibilityTree(scope?: string, pid?: number, maxDepth?: number, options?: RawAxiosRequestConfig): AxiosPromise<AccessibilityTreeResponse> {
            return localVarFp.getAccessibilityTree(scope, pid, maxDepth, options).then((request) => request(axios, basePath));
        },
        /**
         * Get the status of all computer use processes
         * @summary Get computer use process status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getComputerUseStatus(options?: RawAxiosRequestConfig): AxiosPromise<ComputerUseStatusResponse> {
            return localVarFp.getComputerUseStatus(options).then((request) => request(axios, basePath));
        },
        /**
         * Get the current status of the computer use system
         * @summary Get computer use status
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getComputerUseSystemStatus(options?: RawAxiosRequestConfig): AxiosPromise<ComputerUseStatusResponse> {
            return localVarFp.getComputerUseSystemStatus(options).then((request) => request(axios, basePath));
        },
        /**
         * Get information about all available displays
         * @summary Get display information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getDisplayInfo(options?: RawAxiosRequestConfig): AxiosPromise<DisplayInfoResponse> {
            return localVarFp.getDisplayInfo(options).then((request) => request(axios, basePath));
        },
        /**
         * Get the current mouse cursor position
         * @summary Get mouse position
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getMousePosition(options?: RawAxiosRequestConfig): AxiosPromise<MousePositionResponse> {
            return localVarFp.getMousePosition(options).then((request) => request(axios, basePath));
        },
        /**
         * Get errors for a specific computer use process
         * @summary Get process errors
         * @param {string} processName Process name to get errors for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessErrors(processName: string, options?: RawAxiosRequestConfig): AxiosPromise<ProcessErrorsResponse> {
            return localVarFp.getProcessErrors(processName, options).then((request) => request(axios, basePath));
        },
        /**
         * Get logs for a specific computer use process
         * @summary Get process logs
         * @param {string} processName Process name to get logs for
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessLogs(processName: string, options?: RawAxiosRequestConfig): AxiosPromise<ProcessLogsResponse> {
            return localVarFp.getProcessLogs(processName, options).then((request) => request(axios, basePath));
        },
        /**
         * Check if a specific computer use process is running
         * @summary Get specific process status
         * @param {string} processName Process name to check
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getProcessStatus(processName: string, options?: RawAxiosRequestConfig): AxiosPromise<ProcessStatusResponse> {
            return localVarFp.getProcessStatus(processName, options).then((request) => request(axios, basePath));
        },
        /**
         * Get details of a specific recording by ID
         * @summary Get recording details
         * @param {string} id Recording ID
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getRecording(id: string, options?: RawAxiosRequestConfig): AxiosPromise<Recording> {
            return localVarFp.getRecording(id, options).then((request) => request(axios, basePath));
        },
        /**
         * Get information about all open windows
         * @summary Get windows information
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getWindows(options?: RawAxiosRequestConfig): AxiosPromise<WindowsResponse> {
            return localVarFp.getWindows(options).then((request) => request(axios, basePath));
        },
        /**
         * Call an AT-SPI Action on the node. Leave action empty to invoke the node\'s primary (first) action.
         * @summary Invoke an action on an accessibility node
         * @param {AccessibilityInvokeRequest} request Invoke request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        invokeAccessibilityNode(request: AccessibilityInvokeRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.invokeAccessibilityNode(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Get a list of all recordings (active and completed)
         * @summary List all recordings
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listRecordings(options?: RawAxiosRequestConfig): AxiosPromise<ListRecordingsResponse> {
            return localVarFp.listRecordings(options).then((request) => request(axios, basePath));
        },
        /**
         * Move the mouse cursor to the specified coordinates
         * @summary Move mouse cursor
         * @param {MouseMoveRequest} request Mouse move request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        moveMouse(request: MouseMoveRequest, options?: RawAxiosRequestConfig): AxiosPromise<MousePositionResponse> {
            return localVarFp.moveMouse(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Press a hotkey combination (e.g., ctrl+c, cmd+v)
         * @summary Press hotkey
         * @param {KeyboardHotkeyRequest} request Hotkey press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pressHotkey(request: KeyboardHotkeyRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.pressHotkey(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Press a key with optional modifiers
         * @summary Press key
         * @param {KeyboardPressRequest} request Key press request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        pressKey(request: KeyboardPressRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.pressKey(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Restart a specific computer use process
         * @summary Restart specific process
         * @param {string} processName Process name to restart
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        restartProcess(processName: string, options?: RawAxiosRequestConfig): AxiosPromise<ProcessRestartResponse> {
            return localVarFp.restartProcess(processName, options).then((request) => request(axios, basePath));
        },
        /**
         * Scroll the mouse wheel at the specified coordinates
         * @summary Scroll mouse wheel
         * @param {MouseScrollRequest} request Mouse scroll request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        scroll(request: MouseScrollRequest, options?: RawAxiosRequestConfig): AxiosPromise<ScrollResponse> {
            return localVarFp.scroll(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
         * @summary Set the value of an accessibility node
         * @param {AccessibilitySetValueRequest} request Set value request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        setAccessibilityNodeValue(request: AccessibilitySetValueRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.setAccessibilityNodeValue(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Start all computer use processes and return their status
         * @summary Start computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        startComputerUse(options?: RawAxiosRequestConfig): AxiosPromise<ComputerUseStartResponse> {
            return localVarFp.startComputerUse(options).then((request) => request(axios, basePath));
        },
        /**
         * Start a new screen recording session
         * @summary Start a new recording
         * @param {StartRecordingRequest} [request] Recording options
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        startRecording(request?: StartRecordingRequest, options?: RawAxiosRequestConfig): AxiosPromise<Recording> {
            return localVarFp.startRecording(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Stop all computer use processes and return their status
         * @summary Stop computer use processes
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopComputerUse(options?: RawAxiosRequestConfig): AxiosPromise<ComputerUseStopResponse> {
            return localVarFp.stopComputerUse(options).then((request) => request(axios, basePath));
        },
        /**
         * Stop an active screen recording session
         * @summary Stop a recording
         * @param {StopRecordingRequest} request Recording ID to stop
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopRecording(request: StopRecordingRequest, options?: RawAxiosRequestConfig): AxiosPromise<Recording> {
            return localVarFp.stopRecording(request, options).then((request) => request(axios, basePath));
        },
        /**
         * Take a compressed screenshot of a specific region of the screen
         * @summary Take a compressed region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeCompressedRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig): AxiosPromise<ScreenshotResponse> {
            return localVarFp.takeCompressedRegionScreenshot(x, y, width, height, showCursor, format, quality, scale, options).then((request) => request(axios, basePath));
        },
        /**
         * Take a compressed screenshot of the entire screen
         * @summary Take a compressed screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {string} [format] Image format (png or jpeg)
         * @param {number} [quality] JPEG quality (1-100)
         * @param {number} [scale] Scale factor (0.1-1.0)
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeCompressedScreenshot(showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig): AxiosPromise<ScreenshotResponse> {
            return localVarFp.takeCompressedScreenshot(showCursor, format, quality, scale, options).then((request) => request(axios, basePath));
        },
        /**
         * Take a screenshot of a specific region of the screen
         * @summary Take a region screenshot
         * @param {number} x X coordinate of the region
         * @param {number} y Y coordinate of the region
         * @param {number} width Width of the region
         * @param {number} height Height of the region
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<ScreenshotResponse> {
            return localVarFp.takeRegionScreenshot(x, y, width, height, showCursor, options).then((request) => request(axios, basePath));
        },
        /**
         * Take a screenshot of the entire screen
         * @summary Take a screenshot
         * @param {boolean} [showCursor] Whether to show cursor in screenshot
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        takeScreenshot(showCursor?: boolean, options?: RawAxiosRequestConfig): AxiosPromise<ScreenshotResponse> {
            return localVarFp.takeScreenshot(showCursor, options).then((request) => request(axios, basePath));
        },
        /**
         * Type text with optional delay between keystrokes
         * @summary Type text
         * @param {KeyboardTypeRequest} request Text typing request
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        typeText(request: KeyboardTypeRequest, options?: RawAxiosRequestConfig): AxiosPromise<object> {
            return localVarFp.typeText(request, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * ComputerUseApi - object-oriented interface
 */
export class ComputerUseApi extends BaseAPI {
    /**
     * Click the mouse button at the specified coordinates
     * @summary Click mouse button
     * @param {MouseClickRequest} request Mouse click request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public click(request: MouseClickRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).click(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Delete a recording file by ID
     * @summary Delete a recording
     * @param {string} id Recording ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public deleteRecording(id: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).deleteRecording(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Download a recording by providing its ID
     * @summary Download a recording
     * @param {string} id Recording ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public downloadRecording(id: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).downloadRecording(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Drag the mouse from start to end coordinates
     * @summary Drag mouse
     * @param {MouseDragRequest} request Mouse drag request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public drag(request: MouseDragRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).drag(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list.
     * @summary Find accessibility nodes
     * @param {FindAccessibilityNodesRequest} request Find request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public findAccessibilityNodes(request: FindAccessibilityNodesRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).findAccessibilityNodes(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path).
     * @summary Focus an accessibility node
     * @param {AccessibilityNodeRequest} request Node focus request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public focusAccessibilityNode(request: AccessibilityNodeRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).focusAccessibilityNode(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications.
     * @summary Get accessibility tree
     * @param {string} [scope] Scope: focused | pid | all (default: focused)
     * @param {number} [pid] Process ID when scope&#x3D;pid
     * @param {number} [maxDepth] Max tree depth (-1 unbounded, 0 root only; default -1)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getAccessibilityTree(scope?: string, pid?: number, maxDepth?: number, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getAccessibilityTree(scope, pid, maxDepth, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get the status of all computer use processes
     * @summary Get computer use process status
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getComputerUseStatus(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getComputerUseStatus(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get the current status of the computer use system
     * @summary Get computer use status
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getComputerUseSystemStatus(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getComputerUseSystemStatus(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get information about all available displays
     * @summary Get display information
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getDisplayInfo(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getDisplayInfo(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get the current mouse cursor position
     * @summary Get mouse position
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getMousePosition(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getMousePosition(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get errors for a specific computer use process
     * @summary Get process errors
     * @param {string} processName Process name to get errors for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getProcessErrors(processName: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getProcessErrors(processName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get logs for a specific computer use process
     * @summary Get process logs
     * @param {string} processName Process name to get logs for
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getProcessLogs(processName: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getProcessLogs(processName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Check if a specific computer use process is running
     * @summary Get specific process status
     * @param {string} processName Process name to check
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getProcessStatus(processName: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getProcessStatus(processName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get details of a specific recording by ID
     * @summary Get recording details
     * @param {string} id Recording ID
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getRecording(id: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getRecording(id, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get information about all open windows
     * @summary Get windows information
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getWindows(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).getWindows(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Call an AT-SPI Action on the node. Leave action empty to invoke the node\'s primary (first) action.
     * @summary Invoke an action on an accessibility node
     * @param {AccessibilityInvokeRequest} request Invoke request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public invokeAccessibilityNode(request: AccessibilityInvokeRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).invokeAccessibilityNode(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Get a list of all recordings (active and completed)
     * @summary List all recordings
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public listRecordings(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).listRecordings(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Move the mouse cursor to the specified coordinates
     * @summary Move mouse cursor
     * @param {MouseMoveRequest} request Mouse move request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public moveMouse(request: MouseMoveRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).moveMouse(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Press a hotkey combination (e.g., ctrl+c, cmd+v)
     * @summary Press hotkey
     * @param {KeyboardHotkeyRequest} request Hotkey press request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public pressHotkey(request: KeyboardHotkeyRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).pressHotkey(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Press a key with optional modifiers
     * @summary Press key
     * @param {KeyboardPressRequest} request Key press request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public pressKey(request: KeyboardPressRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).pressKey(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Restart a specific computer use process
     * @summary Restart specific process
     * @param {string} processName Process name to restart
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public restartProcess(processName: string, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).restartProcess(processName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Scroll the mouse wheel at the specified coordinates
     * @summary Scroll mouse wheel
     * @param {MouseScrollRequest} request Mouse scroll request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public scroll(request: MouseScrollRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).scroll(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue.
     * @summary Set the value of an accessibility node
     * @param {AccessibilitySetValueRequest} request Set value request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public setAccessibilityNodeValue(request: AccessibilitySetValueRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).setAccessibilityNodeValue(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Start all computer use processes and return their status
     * @summary Start computer use processes
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public startComputerUse(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).startComputerUse(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Start a new screen recording session
     * @summary Start a new recording
     * @param {StartRecordingRequest} [request] Recording options
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public startRecording(request?: StartRecordingRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).startRecording(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Stop all computer use processes and return their status
     * @summary Stop computer use processes
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public stopComputerUse(options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).stopComputerUse(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Stop an active screen recording session
     * @summary Stop a recording
     * @param {StopRecordingRequest} request Recording ID to stop
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public stopRecording(request: StopRecordingRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).stopRecording(request, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Take a compressed screenshot of a specific region of the screen
     * @summary Take a compressed region screenshot
     * @param {number} x X coordinate of the region
     * @param {number} y Y coordinate of the region
     * @param {number} width Width of the region
     * @param {number} height Height of the region
     * @param {boolean} [showCursor] Whether to show cursor in screenshot
     * @param {string} [format] Image format (png or jpeg)
     * @param {number} [quality] JPEG quality (1-100)
     * @param {number} [scale] Scale factor (0.1-1.0)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public takeCompressedRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).takeCompressedRegionScreenshot(x, y, width, height, showCursor, format, quality, scale, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Take a compressed screenshot of the entire screen
     * @summary Take a compressed screenshot
     * @param {boolean} [showCursor] Whether to show cursor in screenshot
     * @param {string} [format] Image format (png or jpeg)
     * @param {number} [quality] JPEG quality (1-100)
     * @param {number} [scale] Scale factor (0.1-1.0)
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public takeCompressedScreenshot(showCursor?: boolean, format?: string, quality?: number, scale?: number, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).takeCompressedScreenshot(showCursor, format, quality, scale, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Take a screenshot of a specific region of the screen
     * @summary Take a region screenshot
     * @param {number} x X coordinate of the region
     * @param {number} y Y coordinate of the region
     * @param {number} width Width of the region
     * @param {number} height Height of the region
     * @param {boolean} [showCursor] Whether to show cursor in screenshot
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public takeRegionScreenshot(x: number, y: number, width: number, height: number, showCursor?: boolean, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).takeRegionScreenshot(x, y, width, height, showCursor, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Take a screenshot of the entire screen
     * @summary Take a screenshot
     * @param {boolean} [showCursor] Whether to show cursor in screenshot
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public takeScreenshot(showCursor?: boolean, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).takeScreenshot(showCursor, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Type text with optional delay between keystrokes
     * @summary Type text
     * @param {KeyboardTypeRequest} request Text typing request
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public typeText(request: KeyboardTypeRequest, options?: RawAxiosRequestConfig) {
        return ComputerUseApiFp(this.configuration).typeText(request, options).then((request) => request(this.axios, this.basePath));
    }
}

