/* tslint:disable */
/* eslint-disable */
/**
 * Fabro Run API
 * HTTP API for managing Fabro workflow run executions.
 *
 * The version of the OpenAPI document: 0.2.0
 *
 *
 * 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 { ErrorResponse } from '../models';
// @ts-ignore
import type { InstallFinishResponse } from '../models';
// @ts-ignore
import type { InstallGithubAppManifestInput } from '../models';
// @ts-ignore
import type { InstallGithubAppManifestResponse } from '../models';
// @ts-ignore
import type { InstallGithubTokenInput } from '../models';
// @ts-ignore
import type { InstallGithubTokenTestInput } from '../models';
// @ts-ignore
import type { InstallGithubTokenTestResponse } from '../models';
// @ts-ignore
import type { InstallLlmProvidersInput } from '../models';
// @ts-ignore
import type { InstallLlmTestInput } from '../models';
// @ts-ignore
import type { InstallLlmValidationResponse } from '../models';
// @ts-ignore
import type { InstallObjectStoreInput } from '../models';
// @ts-ignore
import type { InstallObjectStoreValidationResponse } from '../models';
// @ts-ignore
import type { InstallSandboxInput } from '../models';
// @ts-ignore
import type { InstallSandboxValidationResponse } from '../models';
// @ts-ignore
import type { InstallServerConfigInput } from '../models';
// @ts-ignore
import type { InstallSessionResponse } from '../models';
/**
 * InstallApi - axios parameter creator
 */
export const InstallApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * Manifest-conversion callback target used by GitHub during browser install. Authorized by the callback `state` query parameter rather than the install token.
         * @summary Complete install GitHub App redirect
         * @param {string} code
         * @param {string} state
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        completeInstallGithubAppRedirect: async (code: string, state: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'code' is not null or undefined
            assertParamExists('completeInstallGithubAppRedirect', 'code', code)
            // verify required parameter 'state' is not null or undefined
            assertParamExists('completeInstallGithubAppRedirect', 'state', state)
            const localVarPath = `/install/github/app/redirect`;
            // 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 (code !== undefined) {
                localVarQueryParameter['code'] = code;
            }

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

            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,
            };
        },
        /**
         * Builds the GitHub App manifest and stores the temporary callback state for the browser install. Requires the one-time install token.
         * @summary Build install GitHub App manifest
         * @param {InstallGithubAppManifestInput} installGithubAppManifestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInstallGithubAppManifest: async (installGithubAppManifestInput: InstallGithubAppManifestInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installGithubAppManifestInput' is not null or undefined
            assertParamExists('createInstallGithubAppManifest', 'installGithubAppManifestInput', installGithubAppManifestInput)
            const localVarPath = `/install/github/app/manifest`;
            // 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(installGithubAppManifestInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Persists settings, runtime secrets, and install outputs, then schedules the install-mode process to exit cleanly. Requires the one-time install token.
         * @summary Finalize browser install
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        finishInstall: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/install/finish`;
            // 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,
            };
        },
        /**
         * Returns the current browser-install session snapshot. Requires the one-time install token in `Authorization: Bearer`, `?token=`, or `X-Install-Token`.
         * @summary Get install session
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInstallSession: async (options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            const localVarPath = `/install/session`;
            // 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,
            };
        },
        /**
         * Records the GitHub personal access token chosen during the browser install. Requires the one-time install token.
         * @summary Save install GitHub token
         * @param {InstallGithubTokenInput} installGithubTokenInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallGithubToken: async (installGithubTokenInput: InstallGithubTokenInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installGithubTokenInput' is not null or undefined
            assertParamExists('putInstallGithubToken', 'installGithubTokenInput', installGithubTokenInput)
            const localVarPath = `/install/github/token`;
            // 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: 'PUT', ...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(installGithubTokenInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Records the LLM providers and API keys chosen during the browser install. An empty `providers` list marks the LLM step as completed and explicitly skipped. Requires the one-time install token.
         * @summary Save install LLM settings
         * @param {InstallLlmProvidersInput} installLlmProvidersInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallLlm: async (installLlmProvidersInput: InstallLlmProvidersInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installLlmProvidersInput' is not null or undefined
            assertParamExists('putInstallLlm', 'installLlmProvidersInput', installLlmProvidersInput)
            const localVarPath = `/install/llm`;
            // 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: 'PUT', ...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(installLlmProvidersInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Records the object-store mode selected during browser install. Requires the one-time install token.
         * @summary Save install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallObjectStore: async (installObjectStoreInput: InstallObjectStoreInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installObjectStoreInput' is not null or undefined
            assertParamExists('putInstallObjectStore', 'installObjectStoreInput', installObjectStoreInput)
            const localVarPath = `/install/object-store`;
            // 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: 'PUT', ...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(installObjectStoreInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Records the sandbox provider selected during browser install. Requires the one-time install token.
         * @summary Save install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallSandbox: async (installSandboxInput: InstallSandboxInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installSandboxInput' is not null or undefined
            assertParamExists('putInstallSandbox', 'installSandboxInput', installSandboxInput)
            const localVarPath = `/install/sandbox`;
            // 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: 'PUT', ...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(installSandboxInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Records the canonical server URL confirmed by the operator. Requires the one-time install token.
         * @summary Save install server configuration
         * @param {InstallServerConfigInput} installServerConfigInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallServer: async (installServerConfigInput: InstallServerConfigInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installServerConfigInput' is not null or undefined
            assertParamExists('putInstallServer', 'installServerConfigInput', installServerConfigInput)
            const localVarPath = `/install/server`;
            // 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: 'PUT', ...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(installServerConfigInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Validates a GitHub personal access token without persisting it. Requires the one-time install token.
         * @summary Validate install GitHub token
         * @param {InstallGithubTokenTestInput} installGithubTokenTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallGithubToken: async (installGithubTokenTestInput: InstallGithubTokenTestInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installGithubTokenTestInput' is not null or undefined
            assertParamExists('testInstallGithubToken', 'installGithubTokenTestInput', installGithubTokenTestInput)
            const localVarPath = `/install/github/token/test`;
            // 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(installGithubTokenTestInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Validates an LLM API key without persisting it. Requires the one-time install token.
         * @summary Validate install LLM credentials
         * @param {InstallLlmTestInput} installLlmTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallLlmCredentials: async (installLlmTestInput: InstallLlmTestInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installLlmTestInput' is not null or undefined
            assertParamExists('testInstallLlmCredentials', 'installLlmTestInput', installLlmTestInput)
            const localVarPath = `/install/llm/test`;
            // 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(installLlmTestInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Validates the browser-install object-store selection without persisting it. Requires the one-time install token.
         * @summary Validate install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallObjectStore: async (installObjectStoreInput: InstallObjectStoreInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installObjectStoreInput' is not null or undefined
            assertParamExists('testInstallObjectStore', 'installObjectStoreInput', installObjectStoreInput)
            const localVarPath = `/install/object-store/test`;
            // 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(installObjectStoreInput, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * Validates the browser-install sandbox-provider selection without persisting it. For Daytona, performs a cheap authenticated call against the Daytona SDK to verify the API key. For Docker, returns ok without further checks. Requires the one-time install token.
         * @summary Validate install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallSandbox: async (installSandboxInput: InstallSandboxInput, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'installSandboxInput' is not null or undefined
            assertParamExists('testInstallSandbox', 'installSandboxInput', installSandboxInput)
            const localVarPath = `/install/sandbox/test`;
            // 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(installSandboxInput, localVarRequestOptions, configuration)

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

/**
 * InstallApi - functional programming interface
 */
export const InstallApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = InstallApiAxiosParamCreator(configuration)
    return {
        /**
         * Manifest-conversion callback target used by GitHub during browser install. Authorized by the callback `state` query parameter rather than the install token.
         * @summary Complete install GitHub App redirect
         * @param {string} code
         * @param {string} state
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async completeInstallGithubAppRedirect(code: string, state: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.completeInstallGithubAppRedirect(code, state, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.completeInstallGithubAppRedirect']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Builds the GitHub App manifest and stores the temporary callback state for the browser install. Requires the one-time install token.
         * @summary Build install GitHub App manifest
         * @param {InstallGithubAppManifestInput} installGithubAppManifestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createInstallGithubAppManifest(installGithubAppManifestInput: InstallGithubAppManifestInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallGithubAppManifestResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createInstallGithubAppManifest(installGithubAppManifestInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.createInstallGithubAppManifest']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Persists settings, runtime secrets, and install outputs, then schedules the install-mode process to exit cleanly. Requires the one-time install token.
         * @summary Finalize browser install
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async finishInstall(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallFinishResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.finishInstall(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.finishInstall']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Returns the current browser-install session snapshot. Requires the one-time install token in `Authorization: Bearer`, `?token=`, or `X-Install-Token`.
         * @summary Get install session
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getInstallSession(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallSessionResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getInstallSession(options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.getInstallSession']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Records the GitHub personal access token chosen during the browser install. Requires the one-time install token.
         * @summary Save install GitHub token
         * @param {InstallGithubTokenInput} installGithubTokenInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putInstallGithubToken(installGithubTokenInput: InstallGithubTokenInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putInstallGithubToken(installGithubTokenInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.putInstallGithubToken']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Records the LLM providers and API keys chosen during the browser install. An empty `providers` list marks the LLM step as completed and explicitly skipped. Requires the one-time install token.
         * @summary Save install LLM settings
         * @param {InstallLlmProvidersInput} installLlmProvidersInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putInstallLlm(installLlmProvidersInput: InstallLlmProvidersInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putInstallLlm(installLlmProvidersInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.putInstallLlm']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Records the object-store mode selected during browser install. Requires the one-time install token.
         * @summary Save install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putInstallObjectStore(installObjectStoreInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.putInstallObjectStore']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Records the sandbox provider selected during browser install. Requires the one-time install token.
         * @summary Save install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putInstallSandbox(installSandboxInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.putInstallSandbox']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Records the canonical server URL confirmed by the operator. Requires the one-time install token.
         * @summary Save install server configuration
         * @param {InstallServerConfigInput} installServerConfigInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async putInstallServer(installServerConfigInput: InstallServerConfigInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.putInstallServer(installServerConfigInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.putInstallServer']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Validates a GitHub personal access token without persisting it. Requires the one-time install token.
         * @summary Validate install GitHub token
         * @param {InstallGithubTokenTestInput} installGithubTokenTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async testInstallGithubToken(installGithubTokenTestInput: InstallGithubTokenTestInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallGithubTokenTestResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.testInstallGithubToken(installGithubTokenTestInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.testInstallGithubToken']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Validates an LLM API key without persisting it. Requires the one-time install token.
         * @summary Validate install LLM credentials
         * @param {InstallLlmTestInput} installLlmTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async testInstallLlmCredentials(installLlmTestInput: InstallLlmTestInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallLlmValidationResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.testInstallLlmCredentials(installLlmTestInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.testInstallLlmCredentials']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Validates the browser-install object-store selection without persisting it. Requires the one-time install token.
         * @summary Validate install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async testInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallObjectStoreValidationResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.testInstallObjectStore(installObjectStoreInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.testInstallObjectStore']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * Validates the browser-install sandbox-provider selection without persisting it. For Daytona, performs a cheap authenticated call against the Daytona SDK to verify the API key. For Docker, returns ok without further checks. Requires the one-time install token.
         * @summary Validate install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async testInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<InstallSandboxValidationResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.testInstallSandbox(installSandboxInput, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['InstallApi.testInstallSandbox']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
    }
};

/**
 * InstallApi - factory interface
 */
export const InstallApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = InstallApiFp(configuration)
    return {
        /**
         * Manifest-conversion callback target used by GitHub during browser install. Authorized by the callback `state` query parameter rather than the install token.
         * @summary Complete install GitHub App redirect
         * @param {string} code
         * @param {string} state
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        completeInstallGithubAppRedirect(code: string, state: string, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.completeInstallGithubAppRedirect(code, state, options).then((request) => request(axios, basePath));
        },
        /**
         * Builds the GitHub App manifest and stores the temporary callback state for the browser install. Requires the one-time install token.
         * @summary Build install GitHub App manifest
         * @param {InstallGithubAppManifestInput} installGithubAppManifestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createInstallGithubAppManifest(installGithubAppManifestInput: InstallGithubAppManifestInput, options?: RawAxiosRequestConfig): AxiosPromise<InstallGithubAppManifestResponse> {
            return localVarFp.createInstallGithubAppManifest(installGithubAppManifestInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Persists settings, runtime secrets, and install outputs, then schedules the install-mode process to exit cleanly. Requires the one-time install token.
         * @summary Finalize browser install
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        finishInstall(options?: RawAxiosRequestConfig): AxiosPromise<InstallFinishResponse> {
            return localVarFp.finishInstall(options).then((request) => request(axios, basePath));
        },
        /**
         * Returns the current browser-install session snapshot. Requires the one-time install token in `Authorization: Bearer`, `?token=`, or `X-Install-Token`.
         * @summary Get install session
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getInstallSession(options?: RawAxiosRequestConfig): AxiosPromise<InstallSessionResponse> {
            return localVarFp.getInstallSession(options).then((request) => request(axios, basePath));
        },
        /**
         * Records the GitHub personal access token chosen during the browser install. Requires the one-time install token.
         * @summary Save install GitHub token
         * @param {InstallGithubTokenInput} installGithubTokenInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallGithubToken(installGithubTokenInput: InstallGithubTokenInput, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.putInstallGithubToken(installGithubTokenInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Records the LLM providers and API keys chosen during the browser install. An empty `providers` list marks the LLM step as completed and explicitly skipped. Requires the one-time install token.
         * @summary Save install LLM settings
         * @param {InstallLlmProvidersInput} installLlmProvidersInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallLlm(installLlmProvidersInput: InstallLlmProvidersInput, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.putInstallLlm(installLlmProvidersInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Records the object-store mode selected during browser install. Requires the one-time install token.
         * @summary Save install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.putInstallObjectStore(installObjectStoreInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Records the sandbox provider selected during browser install. Requires the one-time install token.
         * @summary Save install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.putInstallSandbox(installSandboxInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Records the canonical server URL confirmed by the operator. Requires the one-time install token.
         * @summary Save install server configuration
         * @param {InstallServerConfigInput} installServerConfigInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        putInstallServer(installServerConfigInput: InstallServerConfigInput, options?: RawAxiosRequestConfig): AxiosPromise<void> {
            return localVarFp.putInstallServer(installServerConfigInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Validates a GitHub personal access token without persisting it. Requires the one-time install token.
         * @summary Validate install GitHub token
         * @param {InstallGithubTokenTestInput} installGithubTokenTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallGithubToken(installGithubTokenTestInput: InstallGithubTokenTestInput, options?: RawAxiosRequestConfig): AxiosPromise<InstallGithubTokenTestResponse> {
            return localVarFp.testInstallGithubToken(installGithubTokenTestInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Validates an LLM API key without persisting it. Requires the one-time install token.
         * @summary Validate install LLM credentials
         * @param {InstallLlmTestInput} installLlmTestInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallLlmCredentials(installLlmTestInput: InstallLlmTestInput, options?: RawAxiosRequestConfig): AxiosPromise<InstallLlmValidationResponse> {
            return localVarFp.testInstallLlmCredentials(installLlmTestInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Validates the browser-install object-store selection without persisting it. Requires the one-time install token.
         * @summary Validate install object-store configuration
         * @param {InstallObjectStoreInput} installObjectStoreInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig): AxiosPromise<InstallObjectStoreValidationResponse> {
            return localVarFp.testInstallObjectStore(installObjectStoreInput, options).then((request) => request(axios, basePath));
        },
        /**
         * Validates the browser-install sandbox-provider selection without persisting it. For Daytona, performs a cheap authenticated call against the Daytona SDK to verify the API key. For Docker, returns ok without further checks. Requires the one-time install token.
         * @summary Validate install sandbox configuration
         * @param {InstallSandboxInput} installSandboxInput
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        testInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig): AxiosPromise<InstallSandboxValidationResponse> {
            return localVarFp.testInstallSandbox(installSandboxInput, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * InstallApi - object-oriented interface
 */
export class InstallApi extends BaseAPI {
    /**
     * Manifest-conversion callback target used by GitHub during browser install. Authorized by the callback `state` query parameter rather than the install token.
     * @summary Complete install GitHub App redirect
     * @param {string} code
     * @param {string} state
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public completeInstallGithubAppRedirect(code: string, state: string, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).completeInstallGithubAppRedirect(code, state, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Builds the GitHub App manifest and stores the temporary callback state for the browser install. Requires the one-time install token.
     * @summary Build install GitHub App manifest
     * @param {InstallGithubAppManifestInput} installGithubAppManifestInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public createInstallGithubAppManifest(installGithubAppManifestInput: InstallGithubAppManifestInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).createInstallGithubAppManifest(installGithubAppManifestInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Persists settings, runtime secrets, and install outputs, then schedules the install-mode process to exit cleanly. Requires the one-time install token.
     * @summary Finalize browser install
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public finishInstall(options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).finishInstall(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Returns the current browser-install session snapshot. Requires the one-time install token in `Authorization: Bearer`, `?token=`, or `X-Install-Token`.
     * @summary Get install session
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public getInstallSession(options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).getInstallSession(options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Records the GitHub personal access token chosen during the browser install. Requires the one-time install token.
     * @summary Save install GitHub token
     * @param {InstallGithubTokenInput} installGithubTokenInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public putInstallGithubToken(installGithubTokenInput: InstallGithubTokenInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).putInstallGithubToken(installGithubTokenInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Records the LLM providers and API keys chosen during the browser install. An empty `providers` list marks the LLM step as completed and explicitly skipped. Requires the one-time install token.
     * @summary Save install LLM settings
     * @param {InstallLlmProvidersInput} installLlmProvidersInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public putInstallLlm(installLlmProvidersInput: InstallLlmProvidersInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).putInstallLlm(installLlmProvidersInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Records the object-store mode selected during browser install. Requires the one-time install token.
     * @summary Save install object-store configuration
     * @param {InstallObjectStoreInput} installObjectStoreInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public putInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).putInstallObjectStore(installObjectStoreInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Records the sandbox provider selected during browser install. Requires the one-time install token.
     * @summary Save install sandbox configuration
     * @param {InstallSandboxInput} installSandboxInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public putInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).putInstallSandbox(installSandboxInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Records the canonical server URL confirmed by the operator. Requires the one-time install token.
     * @summary Save install server configuration
     * @param {InstallServerConfigInput} installServerConfigInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public putInstallServer(installServerConfigInput: InstallServerConfigInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).putInstallServer(installServerConfigInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Validates a GitHub personal access token without persisting it. Requires the one-time install token.
     * @summary Validate install GitHub token
     * @param {InstallGithubTokenTestInput} installGithubTokenTestInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public testInstallGithubToken(installGithubTokenTestInput: InstallGithubTokenTestInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).testInstallGithubToken(installGithubTokenTestInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Validates an LLM API key without persisting it. Requires the one-time install token.
     * @summary Validate install LLM credentials
     * @param {InstallLlmTestInput} installLlmTestInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public testInstallLlmCredentials(installLlmTestInput: InstallLlmTestInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).testInstallLlmCredentials(installLlmTestInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Validates the browser-install object-store selection without persisting it. Requires the one-time install token.
     * @summary Validate install object-store configuration
     * @param {InstallObjectStoreInput} installObjectStoreInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public testInstallObjectStore(installObjectStoreInput: InstallObjectStoreInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).testInstallObjectStore(installObjectStoreInput, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * Validates the browser-install sandbox-provider selection without persisting it. For Daytona, performs a cheap authenticated call against the Daytona SDK to verify the API key. For Docker, returns ok without further checks. Requires the one-time install token.
     * @summary Validate install sandbox configuration
     * @param {InstallSandboxInput} installSandboxInput
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    public testInstallSandbox(installSandboxInput: InstallSandboxInput, options?: RawAxiosRequestConfig) {
        return InstallApiFp(this.configuration).testInstallSandbox(installSandboxInput, options).then((request) => request(this.axios, this.basePath));
    }
}
