{"version":3,"sources":["../../builds/node.ts","../../src/agentStudioClient.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nexport type AgentStudioClient = ReturnType<typeof createAgentStudioClient> & AgentStudioNodeHelpers;\n\nimport { gzipSync } from 'node:zlib';\n\nimport { createHmac } from 'node:crypto';\n\nimport { createMemoryCache, createNullCache, createNullLogger } from '@algolia/client-common';\nimport { createHttpRequester } from '@algolia/requester-node-http';\n\nimport type { ClientOptions } from '@algolia/client-common';\n\nimport { createAgentStudioClient } from '../src/agentStudioClient';\n\nexport { apiClientVersion } from '../src/agentStudioClient';\n\nexport * from '../model';\n\nimport type { AgentStudioNodeHelpers } from '../model';\n\nexport function agentStudioClient(\n  appId: string,\n  apiKey: string,\n  options?: ClientOptions | undefined,\n): AgentStudioClient {\n  if (!appId || typeof appId !== 'string') {\n    throw new Error('`appId` is missing.');\n  }\n\n  if (!apiKey || typeof apiKey !== 'string') {\n    throw new Error('`apiKey` is missing.');\n  }\n\n  return {\n    ...createAgentStudioClient({\n      appId,\n      apiKey,\n      timeouts: {\n        connect: 25000,\n        read: 25000,\n        write: 25000,\n      },\n      logger: createNullLogger(),\n      requester: createHttpRequester(),\n      algoliaAgents: [{ segment: 'Node.js', version: process.versions.node }],\n      responsesCache: createNullCache(),\n      requestsCache: createNullCache(),\n      hostsCache: createMemoryCache(),\n      compress: async (data: string): Promise<Uint8Array> => gzipSync(Buffer.from(data)),\n      ...options,\n    }),\n    forgeSecuredUserToken({\n      secretKey,\n      secretKeyId,\n      userId,\n      expiresIn = 24 * 3600, // 24 hours\n    }: {\n      secretKey: string;\n      secretKeyId: string;\n      userId: string;\n      expiresIn?: number;\n    }): string {\n      const header = Buffer.from(JSON.stringify({ alg: 'HS256', typ: 'JWT', kid: secretKeyId })).toString('base64url');\n      const payload = Buffer.from(\n        JSON.stringify({ sub: userId, exp: Math.floor(Date.now() / 1000) + expiresIn }),\n      ).toString('base64url');\n      const signature = createHmac('sha256', secretKey).update(`${header}.${payload}`).digest('base64url');\n      return `${header}.${payload}.${signature}`;\n    },\n  };\n}\n","// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type {\n  AlgoliaHttpResponse,\n  CreateClientOptions,\n  Headers,\n  Host,\n  QueryParameters,\n  Request,\n  RequestOptions,\n  ServerSentEvent,\n  StreamEvent,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent, shuffle, validateRequired } from '@algolia/client-common';\n\nimport type { AgentConfigCreate } from '../model/agentConfigCreate';\nimport type { AgentWithVersionResponse } from '../model/agentWithVersionResponse';\nimport type { AllowedDomainListResponse } from '../model/allowedDomainListResponse';\nimport type { AllowedDomainResponse } from '../model/allowedDomainResponse';\nimport type { ApplicationConfigPatch } from '../model/applicationConfigPatch';\nimport type { ApplicationConfigResponse } from '../model/applicationConfigResponse';\nimport type { ContextCompactRequest } from '../model/contextCompactRequest';\nimport type { ContextResponse } from '../model/contextResponse';\nimport type { ContextTrimRequest } from '../model/contextTrimRequest';\nimport type { ConversationFullResponse } from '../model/conversationFullResponse';\nimport type { FeedbackCreationRequest } from '../model/feedbackCreationRequest';\nimport type { FeedbackResponse } from '../model/feedbackResponse';\nimport type { FeedbackUpdateRequest } from '../model/feedbackUpdateRequest';\nimport type { PaginatedAgentsResponse } from '../model/paginatedAgentsResponse';\nimport type { PaginatedConversationsResponse } from '../model/paginatedConversationsResponse';\nimport type { PaginatedProviderAuthenticationsResponse } from '../model/paginatedProviderAuthenticationsResponse';\nimport type { PaginatedSecretKeysResponse } from '../model/paginatedSecretKeysResponse';\nimport type { ProviderAuthenticationCreate } from '../model/providerAuthenticationCreate';\nimport type { ProviderAuthenticationResponse } from '../model/providerAuthenticationResponse';\nimport type { SecretKeyCreate } from '../model/secretKeyCreate';\nimport type { SecretKeyResponse } from '../model/secretKeyResponse';\nimport type { TaskResponse } from '../model/taskResponse';\nimport type { UserDataResponse } from '../model/userDataResponse';\n\nimport type {\n  BulkCreateAllowedDomainsProps,\n  BulkDeleteAllowedDomainsProps,\n  CreateAgentAllowedDomainProps,\n  CreateAgentCompletionProps,\n  CreateAgentTaskProps,\n  CustomDeleteProps,\n  CustomGetProps,\n  CustomPostProps,\n  CustomPutProps,\n  DeleteAgentConversationsProps,\n  DeleteAgentProps,\n  DeleteAllowedDomainProps,\n  DeleteConversationProps,\n  DeleteProviderProps,\n  DeleteSecretKeyProps,\n  DeleteUserDataProps,\n  ExportConversationsProps,\n  GetAgentProps,\n  GetAllowedDomainProps,\n  GetConversationProps,\n  GetProviderProps,\n  GetSecretKeyProps,\n  GetUserDataProps,\n  InvalidateAgentCacheProps,\n  ListAgentAllowedDomainsProps,\n  ListAgentConversationsProps,\n  ListAgentsProps,\n  ListProviderModelsProps,\n  ListProvidersProps,\n  ListSecretKeysProps,\n  PublishAgentProps,\n  UnpublishAgentProps,\n  UpdateAgentProps,\n  UpdateProviderProps,\n  UpdateSecretKeyProps,\n} from '../model/clientMethodProps';\n\nexport const apiClientVersion = '1.6.0';\n\nfunction getDefaultHosts(appId: string): Host[] {\n  return (\n    [\n      {\n        url: `${appId}-dsn.algolia.net`,\n        accept: 'read',\n        protocol: 'https',\n      },\n      {\n        url: `${appId}.algolia.net`,\n        accept: 'write',\n        protocol: 'https',\n      },\n    ] as Host[]\n  ).concat(\n    shuffle([\n      {\n        url: `${appId}-1.algolianet.com`,\n        accept: 'readWrite',\n        protocol: 'https',\n      },\n      {\n        url: `${appId}-2.algolianet.com`,\n        accept: 'readWrite',\n        protocol: 'https',\n      },\n      {\n        url: `${appId}-3.algolianet.com`,\n        accept: 'readWrite',\n        protocol: 'https',\n      },\n    ]),\n  );\n}\n\nexport function createAgentStudioClient({\n  appId: appIdOption,\n  apiKey: apiKeyOption,\n  authMode,\n  algoliaAgents,\n  ...options\n}: CreateClientOptions) {\n  const auth = createAuth(appIdOption, apiKeyOption, authMode);\n  const transporter = createTransporter({\n    hosts: getDefaultHosts(appIdOption),\n    ...options,\n    algoliaAgent: getAlgoliaAgent({\n      algoliaAgents,\n      client: 'AgentStudio',\n      version: apiClientVersion,\n    }),\n    baseHeaders: {\n      'content-type': 'text/plain',\n      ...auth.headers(),\n      ...options.baseHeaders,\n    },\n    baseQueryParameters: {\n      ...auth.queryParameters(),\n      ...options.baseQueryParameters,\n    },\n  });\n\n  return {\n    transporter,\n\n    /**\n     * The `appId` currently in use.\n     */\n    appId: appIdOption,\n\n    /**\n     * The `apiKey` currently in use.\n     */\n    apiKey: apiKeyOption,\n\n    /**\n     * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n     */\n    clearCache(): Promise<void> {\n      return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => undefined);\n    },\n\n    /**\n     * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n     */\n    get _ua(): string {\n      return transporter.algoliaAgent.value;\n    },\n\n    /**\n     * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n     *\n     * @param segment - The algolia agent (user-agent) segment to add.\n     * @param version - The version of the agent.\n     */\n    addAlgoliaAgent(segment: string, version?: string | undefined): void {\n      transporter.algoliaAgent.add({ segment, version });\n    },\n\n    /**\n     * Helper method to switch the API key used to authenticate the requests.\n     *\n     * @param params - Method params.\n     * @param params.apiKey - The new API Key to use.\n     */\n    setClientApiKey({ apiKey }: { apiKey: string }): void {\n      if (!authMode || authMode === 'WithinHeaders') {\n        transporter.baseHeaders['x-algolia-api-key'] = apiKey;\n      } else {\n        transporter.baseQueryParameters['x-algolia-api-key'] = apiKey;\n      }\n    },\n\n    /**\n     * Add multiple allowed domain patterns. Duplicates are skipped.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param bulkCreateAllowedDomains - The bulkCreateAllowedDomains object.\n     * @param bulkCreateAllowedDomains.agentId - The agentId.\n     * @param bulkCreateAllowedDomains.allowedDomainBulkInsert - The allowedDomainBulkInsert object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    bulkCreateAllowedDomains(\n      { agentId, allowedDomainBulkInsert }: BulkCreateAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AllowedDomainListResponse> {\n      validateRequired('agentId', 'bulkCreateAllowedDomains', agentId);\n\n      validateRequired('allowedDomainBulkInsert', 'bulkCreateAllowedDomains', allowedDomainBulkInsert);\n\n      validateRequired('allowedDomainBulkInsert.domains', 'bulkCreateAllowedDomains', allowedDomainBulkInsert.domains);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/bulk'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainBulkInsert,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Add multiple allowed domain patterns. Duplicates are skipped.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param bulkCreateAllowedDomains - The bulkCreateAllowedDomains object.\n     * @param bulkCreateAllowedDomains.agentId - The agentId.\n     * @param bulkCreateAllowedDomains.allowedDomainBulkInsert - The allowedDomainBulkInsert object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see bulkCreateAllowedDomains for the plain version.\n     */\n    bulkCreateAllowedDomainsWithHTTPInfo(\n      { agentId, allowedDomainBulkInsert }: BulkCreateAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AllowedDomainListResponse>> {\n      validateRequired('agentId', 'bulkCreateAllowedDomainsWithHTTPInfo', agentId);\n\n      validateRequired('allowedDomainBulkInsert', 'bulkCreateAllowedDomainsWithHTTPInfo', allowedDomainBulkInsert);\n\n      validateRequired(\n        'allowedDomainBulkInsert.domains',\n        'bulkCreateAllowedDomainsWithHTTPInfo',\n        allowedDomainBulkInsert.domains,\n      );\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/bulk'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainBulkInsert,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Delete allowed domains by id list.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param bulkDeleteAllowedDomains - The bulkDeleteAllowedDomains object.\n     * @param bulkDeleteAllowedDomains.agentId - The agentId.\n     * @param bulkDeleteAllowedDomains.allowedDomainBulkDelete - The allowedDomainBulkDelete object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    bulkDeleteAllowedDomains(\n      { agentId, allowedDomainBulkDelete }: BulkDeleteAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<void> {\n      validateRequired('agentId', 'bulkDeleteAllowedDomains', agentId);\n\n      validateRequired('allowedDomainBulkDelete', 'bulkDeleteAllowedDomains', allowedDomainBulkDelete);\n\n      validateRequired(\n        'allowedDomainBulkDelete.domainIds',\n        'bulkDeleteAllowedDomains',\n        allowedDomainBulkDelete.domainIds,\n      );\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/bulk'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainBulkDelete,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Delete allowed domains by id list.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param bulkDeleteAllowedDomains - The bulkDeleteAllowedDomains object.\n     * @param bulkDeleteAllowedDomains.agentId - The agentId.\n     * @param bulkDeleteAllowedDomains.allowedDomainBulkDelete - The allowedDomainBulkDelete object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see bulkDeleteAllowedDomains for the plain version.\n     */\n    bulkDeleteAllowedDomainsWithHTTPInfo(\n      { agentId, allowedDomainBulkDelete }: BulkDeleteAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('agentId', 'bulkDeleteAllowedDomainsWithHTTPInfo', agentId);\n\n      validateRequired('allowedDomainBulkDelete', 'bulkDeleteAllowedDomainsWithHTTPInfo', allowedDomainBulkDelete);\n\n      validateRequired(\n        'allowedDomainBulkDelete.domainIds',\n        'bulkDeleteAllowedDomainsWithHTTPInfo',\n        allowedDomainBulkDelete.domainIds,\n      );\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/bulk'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainBulkDelete,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Summarize the older part of a conversation into a single user message via the caller\\'s LLM.  Everything except the trailing `keepLastMessages` messages is summarized; the summary is returned as a user-role message followed by the kept tail verbatim. Your provider runs the summary, so the provider adds the cost to your account.  A conversation too large for the summarizer\\'s context window is split into chunks that each fit, summarized concurrently, then merged in a reduce pass - so payload size alone does not fail the request. When the conversation still cannot be summarized (it needs more chunks than the server allows, or the chunk summaries will not converge), the response is a `400`, not a `500`.  Two optional controls shape the output. `instructions` adds caller guidance inside the server-owned prompt frame, so it steers the summary without the model echoing the wording back. `targetTokensEstimate` sets a desired summary size, translated into word-count guidance.  The `compaction` block reports what happened: `compacted` is `false` when the payload passed through untouched (nothing older than the kept tail), alongside chunk/pass counts and the summarizer\\'s own token usage.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param contextCompactRequest - The contextCompactRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    compactContext(\n      contextCompactRequest: ContextCompactRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<ContextResponse> {\n      validateRequired('contextCompactRequest', 'compactContext', contextCompactRequest);\n\n      validateRequired('contextCompactRequest.providerID', 'compactContext', contextCompactRequest.providerID);\n      validateRequired('contextCompactRequest.model', 'compactContext', contextCompactRequest.model);\n      validateRequired('contextCompactRequest.messages', 'compactContext', contextCompactRequest.messages);\n\n      const requestPath = '/agent-studio/1/unstable/context/compact';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: contextCompactRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Summarize the older part of a conversation into a single user message via the caller\\'s LLM.  Everything except the trailing `keepLastMessages` messages is summarized; the summary is returned as a user-role message followed by the kept tail verbatim. Your provider runs the summary, so the provider adds the cost to your account.  A conversation too large for the summarizer\\'s context window is split into chunks that each fit, summarized concurrently, then merged in a reduce pass - so payload size alone does not fail the request. When the conversation still cannot be summarized (it needs more chunks than the server allows, or the chunk summaries will not converge), the response is a `400`, not a `500`.  Two optional controls shape the output. `instructions` adds caller guidance inside the server-owned prompt frame, so it steers the summary without the model echoing the wording back. `targetTokensEstimate` sets a desired summary size, translated into word-count guidance.  The `compaction` block reports what happened: `compacted` is `false` when the payload passed through untouched (nothing older than the kept tail), alongside chunk/pass counts and the summarizer\\'s own token usage.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param contextCompactRequest - The contextCompactRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see compactContext for the plain version.\n     */\n    compactContextWithHTTPInfo(\n      contextCompactRequest: ContextCompactRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ContextResponse>> {\n      validateRequired('contextCompactRequest', 'compactContextWithHTTPInfo', contextCompactRequest);\n\n      validateRequired(\n        'contextCompactRequest.providerID',\n        'compactContextWithHTTPInfo',\n        contextCompactRequest.providerID,\n      );\n      validateRequired('contextCompactRequest.model', 'compactContextWithHTTPInfo', contextCompactRequest.model);\n      validateRequired('contextCompactRequest.messages', 'compactContextWithHTTPInfo', contextCompactRequest.messages);\n\n      const requestPath = '/agent-studio/1/unstable/context/compact';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: contextCompactRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Create a new agent.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param agentConfigCreate - The agentConfigCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createAgent(\n      agentConfigCreate: AgentConfigCreate,\n      requestOptions?: RequestOptions,\n    ): Promise<AgentWithVersionResponse> {\n      validateRequired('agentConfigCreate', 'createAgent', agentConfigCreate);\n\n      validateRequired('agentConfigCreate.name', 'createAgent', agentConfigCreate.name);\n      validateRequired('agentConfigCreate.instructions', 'createAgent', agentConfigCreate.instructions);\n\n      const requestPath = '/agent-studio/1/agents';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentConfigCreate,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Create a new agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param agentConfigCreate - The agentConfigCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createAgent for the plain version.\n     */\n    createAgentWithHTTPInfo(\n      agentConfigCreate: AgentConfigCreate,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AgentWithVersionResponse>> {\n      validateRequired('agentConfigCreate', 'createAgentWithHTTPInfo', agentConfigCreate);\n\n      validateRequired('agentConfigCreate.name', 'createAgentWithHTTPInfo', agentConfigCreate.name);\n      validateRequired('agentConfigCreate.instructions', 'createAgentWithHTTPInfo', agentConfigCreate.instructions);\n\n      const requestPath = '/agent-studio/1/agents';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentConfigCreate,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Add a single allowed domain pattern (e.g. https://app.example.com or *.example.com).\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param createAgentAllowedDomain - The createAgentAllowedDomain object.\n     * @param createAgentAllowedDomain.agentId - The agentId.\n     * @param createAgentAllowedDomain.allowedDomainCreate - The allowedDomainCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createAgentAllowedDomain(\n      { agentId, allowedDomainCreate }: CreateAgentAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AllowedDomainResponse> {\n      validateRequired('agentId', 'createAgentAllowedDomain', agentId);\n\n      validateRequired('allowedDomainCreate', 'createAgentAllowedDomain', allowedDomainCreate);\n\n      validateRequired('allowedDomainCreate.domain', 'createAgentAllowedDomain', allowedDomainCreate.domain);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainCreate,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Add a single allowed domain pattern (e.g. https://app.example.com or *.example.com).\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param createAgentAllowedDomain - The createAgentAllowedDomain object.\n     * @param createAgentAllowedDomain.agentId - The agentId.\n     * @param createAgentAllowedDomain.allowedDomainCreate - The allowedDomainCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createAgentAllowedDomain for the plain version.\n     */\n    createAgentAllowedDomainWithHTTPInfo(\n      { agentId, allowedDomainCreate }: CreateAgentAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AllowedDomainResponse>> {\n      validateRequired('agentId', 'createAgentAllowedDomainWithHTTPInfo', agentId);\n\n      validateRequired('allowedDomainCreate', 'createAgentAllowedDomainWithHTTPInfo', allowedDomainCreate);\n\n      validateRequired(\n        'allowedDomainCreate.domain',\n        'createAgentAllowedDomainWithHTTPInfo',\n        allowedDomainCreate.domain,\n      );\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: allowedDomainCreate,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Create a completion for the specified agent.  This endpoint handles two types of requests: 1. Normal completion request: User message -> Agent response 2. Tool approval response: User approval -> Execute tool -> Agent response  Tool Approval Flow (for MCP tools with requiresApproval: true): - Request 1: User sends message -> Agent requests tool call -> Return approval request - Request 2: User approves -> Execute tool -> Agent continues with result.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param createAgentCompletion - The createAgentCompletion object.\n     * @param createAgentCompletion.agentId - The agentId.\n     * @param createAgentCompletion.compatibilityMode - Compatibility mode for the completion API.\n     * @param createAgentCompletion.agentCompletionRequest - The agentCompletionRequest object.\n     * @param createAgentCompletion.stream - Whether to stream the response or not.\n     * @param createAgentCompletion.cache - Use cached responses if available.\n     * @param createAgentCompletion.memory - Set to false to disable memory (enabled by default).\n     * @param createAgentCompletion.analytics - Set to false to skip analytics for this completion (default: true). Disables Agent Studio BigQuery analytics, Algolia search analytics, click analytics, and query-suggestions training. Useful for offline-eval workflows.\n     * @param createAgentCompletion.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createAgentCompletion(\n      {\n        agentId,\n        compatibilityMode,\n        agentCompletionRequest,\n        stream,\n        cache,\n        memory,\n        analytics,\n        xAlgoliaSecureUserToken,\n      }: CreateAgentCompletionProps,\n      requestOptions?: RequestOptions,\n    ): Promise<{ [key: string]: any }> {\n      validateRequired('agentId', 'createAgentCompletion', agentId);\n\n      validateRequired('compatibilityMode', 'createAgentCompletion', compatibilityMode);\n\n      validateRequired('agentCompletionRequest', 'createAgentCompletion', agentCompletionRequest);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/completions'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (compatibilityMode !== undefined) {\n        queryParameters['compatibilityMode'] = compatibilityMode.toString();\n      }\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (memory !== undefined) {\n        queryParameters['memory'] = memory.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentCompletionRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Create a completion for the specified agent.  This endpoint handles two types of requests: 1. Normal completion request: User message -> Agent response 2. Tool approval response: User approval -> Execute tool -> Agent response  Tool Approval Flow (for MCP tools with requiresApproval: true): - Request 1: User sends message -> Agent requests tool call -> Return approval request - Request 2: User approves -> Execute tool -> Agent continues with result.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param createAgentCompletion - The createAgentCompletion object.\n     * @param createAgentCompletion.agentId - The agentId.\n     * @param createAgentCompletion.compatibilityMode - Compatibility mode for the completion API.\n     * @param createAgentCompletion.agentCompletionRequest - The agentCompletionRequest object.\n     * @param createAgentCompletion.stream - Whether to stream the response or not.\n     * @param createAgentCompletion.cache - Use cached responses if available.\n     * @param createAgentCompletion.memory - Set to false to disable memory (enabled by default).\n     * @param createAgentCompletion.analytics - Set to false to skip analytics for this completion (default: true). Disables Agent Studio BigQuery analytics, Algolia search analytics, click analytics, and query-suggestions training. Useful for offline-eval workflows.\n     * @param createAgentCompletion.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createAgentCompletion for the plain version.\n     */\n    createAgentCompletionWithHTTPInfo(\n      {\n        agentId,\n        compatibilityMode,\n        agentCompletionRequest,\n        stream,\n        cache,\n        memory,\n        analytics,\n        xAlgoliaSecureUserToken,\n      }: CreateAgentCompletionProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<{ [key: string]: any }>> {\n      validateRequired('agentId', 'createAgentCompletionWithHTTPInfo', agentId);\n\n      validateRequired('compatibilityMode', 'createAgentCompletionWithHTTPInfo', compatibilityMode);\n\n      validateRequired('agentCompletionRequest', 'createAgentCompletionWithHTTPInfo', agentCompletionRequest);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/completions'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (compatibilityMode !== undefined) {\n        queryParameters['compatibilityMode'] = compatibilityMode.toString();\n      }\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (memory !== undefined) {\n        queryParameters['memory'] = memory.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentCompletionRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n    /**\n     * Create a completion for the specified agent.  This endpoint handles two types of requests: 1. Normal completion request: User message -> Agent response 2. Tool approval response: User approval -> Execute tool -> Agent response  Tool Approval Flow (for MCP tools with requiresApproval: true): - Request 1: User sends message -> Agent requests tool call -> Return approval request - Request 2: User approves -> Execute tool -> Agent continues with result. (raw streaming version).\n     *\n     * Yields raw {@link ServerSentEvent} objects. Each event's `data` field contains a JSON-encoded `{ [key: string]: any; }` string.\n     *\n     * @see createAgentCompletionStream for the parsed variant.\n     * @see createAgentCompletion for the non-streaming version.\n     */\n    createAgentCompletionStreamRaw(\n      {\n        agentId,\n        compatibilityMode,\n        agentCompletionRequest,\n        stream,\n        cache,\n        memory,\n        analytics,\n        xAlgoliaSecureUserToken,\n      }: CreateAgentCompletionProps,\n      requestOptions?: RequestOptions,\n    ): AsyncGenerator<ServerSentEvent> {\n      validateRequired('agentId', 'createAgentCompletionStreamRaw', agentId);\n\n      validateRequired('compatibilityMode', 'createAgentCompletionStreamRaw', compatibilityMode);\n\n      validateRequired('agentCompletionRequest', 'createAgentCompletionStreamRaw', agentCompletionRequest);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/completions'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (compatibilityMode !== undefined) {\n        queryParameters['compatibilityMode'] = compatibilityMode.toString();\n      }\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (memory !== undefined) {\n        queryParameters['memory'] = memory.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentCompletionRequest,\n      };\n\n      return transporter.requestStream(request, requestOptions);\n    },\n    /**\n     * Create a completion for the specified agent.  This endpoint handles two types of requests: 1. Normal completion request: User message -> Agent response 2. Tool approval response: User approval -> Execute tool -> Agent response  Tool Approval Flow (for MCP tools with requiresApproval: true): - Request 1: User sends message -> Agent requests tool call -> Return approval request - Request 2: User approves -> Execute tool -> Agent continues with result. (streaming version).\n     *\n     * Yields {@link StreamEvent} objects wrapping parsed `{ [key: string]: any; }` payloads.\n     *\n     * @see createAgentCompletionStreamRaw for the raw variant.\n     * @see createAgentCompletion for the non-streaming version.\n     */\n    async *createAgentCompletionStream(\n      {\n        agentId,\n        compatibilityMode,\n        agentCompletionRequest,\n        stream,\n        cache,\n        memory,\n        analytics,\n        xAlgoliaSecureUserToken,\n      }: CreateAgentCompletionProps,\n      requestOptions?: RequestOptions,\n    ): AsyncGenerator<StreamEvent<{ [key: string]: any }>> {\n      for await (const event of this.createAgentCompletionStreamRaw(\n        {\n          agentId,\n          compatibilityMode,\n          agentCompletionRequest,\n          stream,\n          cache,\n          memory,\n          analytics,\n          xAlgoliaSecureUserToken,\n        },\n        requestOptions,\n      )) {\n        try {\n          const data = JSON.parse(event.data) as { [key: string]: any };\n          yield { data, raw: event };\n        } catch (e) {\n          yield { data: null, raw: event, error: e as Error };\n        }\n      }\n    },\n\n    /**\n     * Run a configured task and return the generated object as ``{ output }``.  With ``?stream=true``, returns the raw partial JSON text stream expected by AI SDK v5 ``useObject``. The streamed JSON is the task output itself.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param createAgentTask - The createAgentTask object.\n     * @param createAgentTask.agentId - The agentId.\n     * @param createAgentTask.taskRequest - The taskRequest object.\n     * @param createAgentTask.stream - Whether to stream the response or not.\n     * @param createAgentTask.cache - Use cached responses if available.\n     * @param createAgentTask.analytics - Set to false to skip endpoint-specific analytics for this task call (default: true). Disables the task analytics event; operational metrics and traces are always emitted.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createAgentTask(\n      { agentId, taskRequest, stream, cache, analytics }: CreateAgentTaskProps,\n      requestOptions?: RequestOptions,\n    ): Promise<TaskResponse> {\n      validateRequired('agentId', 'createAgentTask', agentId);\n\n      validateRequired('taskRequest', 'createAgentTask', taskRequest);\n\n      validateRequired('taskRequest.input', 'createAgentTask', taskRequest.input);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/tasks'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: taskRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Run a configured task and return the generated object as ``{ output }``.  With ``?stream=true``, returns the raw partial JSON text stream expected by AI SDK v5 ``useObject``. The streamed JSON is the task output itself.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param createAgentTask - The createAgentTask object.\n     * @param createAgentTask.agentId - The agentId.\n     * @param createAgentTask.taskRequest - The taskRequest object.\n     * @param createAgentTask.stream - Whether to stream the response or not.\n     * @param createAgentTask.cache - Use cached responses if available.\n     * @param createAgentTask.analytics - Set to false to skip endpoint-specific analytics for this task call (default: true). Disables the task analytics event; operational metrics and traces are always emitted.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createAgentTask for the plain version.\n     */\n    createAgentTaskWithHTTPInfo(\n      { agentId, taskRequest, stream, cache, analytics }: CreateAgentTaskProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<TaskResponse>> {\n      validateRequired('agentId', 'createAgentTaskWithHTTPInfo', agentId);\n\n      validateRequired('taskRequest', 'createAgentTaskWithHTTPInfo', taskRequest);\n\n      validateRequired('taskRequest.input', 'createAgentTaskWithHTTPInfo', taskRequest.input);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/tasks'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: taskRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n    /**\n     * Run a configured task and return the generated object as ``{ output }``.  With ``?stream=true``, returns the raw partial JSON text stream expected by AI SDK v5 ``useObject``. The streamed JSON is the task output itself. (raw streaming version).\n     *\n     * Yields raw {@link ServerSentEvent} objects. Each event's `data` field contains a JSON-encoded `TaskResponse` string.\n     *\n     * @see createAgentTaskStream for the parsed variant.\n     * @see createAgentTask for the non-streaming version.\n     */\n    createAgentTaskStreamRaw(\n      { agentId, taskRequest, stream, cache, analytics }: CreateAgentTaskProps,\n      requestOptions?: RequestOptions,\n    ): AsyncGenerator<ServerSentEvent> {\n      validateRequired('agentId', 'createAgentTaskStreamRaw', agentId);\n\n      validateRequired('taskRequest', 'createAgentTaskStreamRaw', taskRequest);\n\n      validateRequired('taskRequest.input', 'createAgentTaskStreamRaw', taskRequest.input);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/tasks'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (stream !== undefined) {\n        queryParameters['stream'] = stream.toString();\n      }\n\n      if (cache !== undefined) {\n        queryParameters['cache'] = cache.toString();\n      }\n\n      if (analytics !== undefined) {\n        queryParameters['analytics'] = analytics.toString();\n      }\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: taskRequest,\n      };\n\n      return transporter.requestStream(request, requestOptions);\n    },\n    /**\n     * Run a configured task and return the generated object as ``{ output }``.  With ``?stream=true``, returns the raw partial JSON text stream expected by AI SDK v5 ``useObject``. The streamed JSON is the task output itself. (streaming version).\n     *\n     * Yields {@link StreamEvent} objects wrapping parsed `TaskResponse` payloads.\n     *\n     * @see createAgentTaskStreamRaw for the raw variant.\n     * @see createAgentTask for the non-streaming version.\n     */\n    async *createAgentTaskStream(\n      { agentId, taskRequest, stream, cache, analytics }: CreateAgentTaskProps,\n      requestOptions?: RequestOptions,\n    ): AsyncGenerator<StreamEvent<TaskResponse>> {\n      for await (const event of this.createAgentTaskStreamRaw(\n        { agentId, taskRequest, stream, cache, analytics },\n        requestOptions,\n      )) {\n        try {\n          const data = JSON.parse(event.data) as TaskResponse;\n          yield { data, raw: event };\n        } catch (e) {\n          yield { data: null, raw: event, error: e as Error };\n        }\n      }\n    },\n\n    /**\n     * Create new feedback entry.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param feedbackCreationRequest - The feedbackCreationRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createFeedback(\n      feedbackCreationRequest: FeedbackCreationRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<FeedbackResponse> {\n      validateRequired('feedbackCreationRequest', 'createFeedback', feedbackCreationRequest);\n\n      validateRequired('feedbackCreationRequest.messageId', 'createFeedback', feedbackCreationRequest.messageId);\n      validateRequired('feedbackCreationRequest.agentId', 'createFeedback', feedbackCreationRequest.agentId);\n      validateRequired('feedbackCreationRequest.vote', 'createFeedback', feedbackCreationRequest.vote);\n\n      const requestPath = '/agent-studio/1/feedback';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: feedbackCreationRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Create new feedback entry.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param feedbackCreationRequest - The feedbackCreationRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createFeedback for the plain version.\n     */\n    createFeedbackWithHTTPInfo(\n      feedbackCreationRequest: FeedbackCreationRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<FeedbackResponse>> {\n      validateRequired('feedbackCreationRequest', 'createFeedbackWithHTTPInfo', feedbackCreationRequest);\n\n      validateRequired(\n        'feedbackCreationRequest.messageId',\n        'createFeedbackWithHTTPInfo',\n        feedbackCreationRequest.messageId,\n      );\n      validateRequired(\n        'feedbackCreationRequest.agentId',\n        'createFeedbackWithHTTPInfo',\n        feedbackCreationRequest.agentId,\n      );\n      validateRequired('feedbackCreationRequest.vote', 'createFeedbackWithHTTPInfo', feedbackCreationRequest.vote);\n\n      const requestPath = '/agent-studio/1/feedback';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: feedbackCreationRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Create Provider.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param providerAuthenticationCreate - The providerAuthenticationCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createProvider(\n      providerAuthenticationCreate: ProviderAuthenticationCreate,\n      requestOptions?: RequestOptions,\n    ): Promise<ProviderAuthenticationResponse> {\n      validateRequired('providerAuthenticationCreate', 'createProvider', providerAuthenticationCreate);\n\n      validateRequired('providerAuthenticationCreate.name', 'createProvider', providerAuthenticationCreate.name);\n      validateRequired(\n        'providerAuthenticationCreate.providerName',\n        'createProvider',\n        providerAuthenticationCreate.providerName,\n      );\n      validateRequired('providerAuthenticationCreate.input', 'createProvider', providerAuthenticationCreate.input);\n\n      const requestPath = '/agent-studio/1/providers';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: providerAuthenticationCreate,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Create Provider.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param providerAuthenticationCreate - The providerAuthenticationCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createProvider for the plain version.\n     */\n    createProviderWithHTTPInfo(\n      providerAuthenticationCreate: ProviderAuthenticationCreate,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ProviderAuthenticationResponse>> {\n      validateRequired('providerAuthenticationCreate', 'createProviderWithHTTPInfo', providerAuthenticationCreate);\n\n      validateRequired(\n        'providerAuthenticationCreate.name',\n        'createProviderWithHTTPInfo',\n        providerAuthenticationCreate.name,\n      );\n      validateRequired(\n        'providerAuthenticationCreate.providerName',\n        'createProviderWithHTTPInfo',\n        providerAuthenticationCreate.providerName,\n      );\n      validateRequired(\n        'providerAuthenticationCreate.input',\n        'createProviderWithHTTPInfo',\n        providerAuthenticationCreate.input,\n      );\n\n      const requestPath = '/agent-studio/1/providers';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: providerAuthenticationCreate,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Create Secret Key.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param secretKeyCreate - The secretKeyCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    createSecretKey(secretKeyCreate: SecretKeyCreate, requestOptions?: RequestOptions): Promise<SecretKeyResponse> {\n      validateRequired('secretKeyCreate', 'createSecretKey', secretKeyCreate);\n\n      validateRequired('secretKeyCreate.name', 'createSecretKey', secretKeyCreate.name);\n\n      const requestPath = '/agent-studio/1/secret-keys';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: secretKeyCreate,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Create Secret Key.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param secretKeyCreate - The secretKeyCreate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see createSecretKey for the plain version.\n     */\n    createSecretKeyWithHTTPInfo(\n      secretKeyCreate: SecretKeyCreate,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<SecretKeyResponse>> {\n      validateRequired('secretKeyCreate', 'createSecretKeyWithHTTPInfo', secretKeyCreate);\n\n      validateRequired('secretKeyCreate.name', 'createSecretKeyWithHTTPInfo', secretKeyCreate.name);\n\n      const requestPath = '/agent-studio/1/secret-keys';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: secretKeyCreate,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     * @param customDelete - The customDelete object.\n     * @param customDelete.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customDelete.parameters - Query parameters to apply to the current query.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    customDelete(\n      { path, parameters }: CustomDeleteProps,\n      requestOptions?: RequestOptions,\n    ): Promise<Record<string, unknown>> {\n      validateRequired('path', 'customDelete', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     * @param customDelete - The customDelete object.\n     * @param customDelete.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customDelete.parameters - Query parameters to apply to the current query.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see customDelete for the plain version.\n     */\n    customDeleteWithHTTPInfo(\n      { path, parameters }: CustomDeleteProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n      validateRequired('path', 'customDeleteWithHTTPInfo', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     * @param customGet - The customGet object.\n     * @param customGet.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customGet.parameters - Query parameters to apply to the current query.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>> {\n      validateRequired('path', 'customGet', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     * @param customGet - The customGet object.\n     * @param customGet.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customGet.parameters - Query parameters to apply to the current query.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see customGet for the plain version.\n     */\n    customGetWithHTTPInfo(\n      { path, parameters }: CustomGetProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n      validateRequired('path', 'customGetWithHTTPInfo', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     * @param customPost - The customPost object.\n     * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customPost.parameters - Query parameters to apply to the current query.\n     * @param customPost.body - Parameters to send with the custom request.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    customPost(\n      { path, parameters, body }: CustomPostProps,\n      requestOptions?: RequestOptions,\n    ): Promise<Record<string, unknown>> {\n      validateRequired('path', 'customPost', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: body ? body : {},\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     * @param customPost - The customPost object.\n     * @param customPost.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customPost.parameters - Query parameters to apply to the current query.\n     * @param customPost.body - Parameters to send with the custom request.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see customPost for the plain version.\n     */\n    customPostWithHTTPInfo(\n      { path, parameters, body }: CustomPostProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n      validateRequired('path', 'customPostWithHTTPInfo', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: body ? body : {},\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     * @param customPut - The customPut object.\n     * @param customPut.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customPut.parameters - Query parameters to apply to the current query.\n     * @param customPut.body - Parameters to send with the custom request.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    customPut(\n      { path, parameters, body }: CustomPutProps,\n      requestOptions?: RequestOptions,\n    ): Promise<Record<string, unknown>> {\n      validateRequired('path', 'customPut', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'PUT',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: body ? body : {},\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * This method lets you send requests to the Algolia REST API.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     * @param customPut - The customPut object.\n     * @param customPut.path - Path of the endpoint, for example `1/newFeature`.\n     * @param customPut.parameters - Query parameters to apply to the current query.\n     * @param customPut.body - Parameters to send with the custom request.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see customPut for the plain version.\n     */\n    customPutWithHTTPInfo(\n      { path, parameters, body }: CustomPutProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Record<string, unknown>>> {\n      validateRequired('path', 'customPutWithHTTPInfo', path);\n\n      const requestPath = '/agent-studio/{path}'.replace('{path}', path);\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = parameters ? parameters : {};\n\n      const request: Request = {\n        method: 'PUT',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: body ? body : {},\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Delete the specified agent.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteAgent - The deleteAgent object.\n     * @param deleteAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteAgent({ agentId }: DeleteAgentProps, requestOptions?: RequestOptions): Promise<void> {\n      validateRequired('agentId', 'deleteAgent', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Delete the specified agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteAgent - The deleteAgent object.\n     * @param deleteAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteAgent for the plain version.\n     */\n    deleteAgentWithHTTPInfo(\n      { agentId }: DeleteAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('agentId', 'deleteAgentWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Deletes the conversations matching the given filters.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteAgentConversations - The deleteAgentConversations object.\n     * @param deleteAgentConversations.agentId - The agentId.\n     * @param deleteAgentConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param deleteAgentConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteAgentConversations(\n      { agentId, startDate, endDate }: DeleteAgentConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<void> {\n      validateRequired('agentId', 'deleteAgentConversations', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Deletes the conversations matching the given filters.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteAgentConversations - The deleteAgentConversations object.\n     * @param deleteAgentConversations.agentId - The agentId.\n     * @param deleteAgentConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param deleteAgentConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteAgentConversations for the plain version.\n     */\n    deleteAgentConversationsWithHTTPInfo(\n      { agentId, startDate, endDate }: DeleteAgentConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('agentId', 'deleteAgentConversationsWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Remove an allowed domain by id.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteAllowedDomain - The deleteAllowedDomain object.\n     * @param deleteAllowedDomain.domainId - The domainId.\n     * @param deleteAllowedDomain.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteAllowedDomain(\n      { domainId, agentId }: DeleteAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<void> {\n      validateRequired('domainId', 'deleteAllowedDomain', domainId);\n\n      validateRequired('agentId', 'deleteAllowedDomain', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/{domainId}'\n        .replace('{domainId}', encodeURIComponent(domainId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Remove an allowed domain by id.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteAllowedDomain - The deleteAllowedDomain object.\n     * @param deleteAllowedDomain.domainId - The domainId.\n     * @param deleteAllowedDomain.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteAllowedDomain for the plain version.\n     */\n    deleteAllowedDomainWithHTTPInfo(\n      { domainId, agentId }: DeleteAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('domainId', 'deleteAllowedDomainWithHTTPInfo', domainId);\n\n      validateRequired('agentId', 'deleteAllowedDomainWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/{domainId}'\n        .replace('{domainId}', encodeURIComponent(domainId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Deletes the conversation with the given ID.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteConversation - The deleteConversation object.\n     * @param deleteConversation.conversationId - The conversationId.\n     * @param deleteConversation.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteConversation(\n      { conversationId, agentId }: DeleteConversationProps,\n      requestOptions?: RequestOptions,\n    ): Promise<void> {\n      validateRequired('conversationId', 'deleteConversation', conversationId);\n\n      validateRequired('agentId', 'deleteConversation', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/{conversationId}'\n        .replace('{conversationId}', encodeURIComponent(conversationId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Deletes the conversation with the given ID.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteConversation - The deleteConversation object.\n     * @param deleteConversation.conversationId - The conversationId.\n     * @param deleteConversation.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteConversation for the plain version.\n     */\n    deleteConversationWithHTTPInfo(\n      { conversationId, agentId }: DeleteConversationProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('conversationId', 'deleteConversationWithHTTPInfo', conversationId);\n\n      validateRequired('agentId', 'deleteConversationWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/{conversationId}'\n        .replace('{conversationId}', encodeURIComponent(conversationId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Delete Provider.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteProvider - The deleteProvider object.\n     * @param deleteProvider.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteProvider({ providerId }: DeleteProviderProps, requestOptions?: RequestOptions): Promise<void> {\n      validateRequired('providerId', 'deleteProvider', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Delete Provider.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param deleteProvider - The deleteProvider object.\n     * @param deleteProvider.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteProvider for the plain version.\n     */\n    deleteProviderWithHTTPInfo(\n      { providerId }: DeleteProviderProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('providerId', 'deleteProviderWithHTTPInfo', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Delete Secret Key.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param deleteSecretKey - The deleteSecretKey object.\n     * @param deleteSecretKey.secretKeyId - The secretKeyId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteSecretKey({ secretKeyId }: DeleteSecretKeyProps, requestOptions?: RequestOptions): Promise<void> {\n      validateRequired('secretKeyId', 'deleteSecretKey', secretKeyId);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Delete Secret Key.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param deleteSecretKey - The deleteSecretKey object.\n     * @param deleteSecretKey.secretKeyId - The secretKeyId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteSecretKey for the plain version.\n     */\n    deleteSecretKeyWithHTTPInfo(\n      { secretKeyId }: DeleteSecretKeyProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('secretKeyId', 'deleteSecretKeyWithHTTPInfo', secretKeyId);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Permanently deletes all messages for the given user token. Does not delete conversations.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteUserData - The deleteUserData object.\n     * @param deleteUserData.userToken - The userToken.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    deleteUserData({ userToken }: DeleteUserDataProps, requestOptions?: RequestOptions): Promise<void> {\n      validateRequired('userToken', 'deleteUserData', userToken);\n\n      const requestPath = '/agent-studio/1/user-data/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Permanently deletes all messages for the given user token. Does not delete conversations.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param deleteUserData - The deleteUserData object.\n     * @param deleteUserData.userToken - The userToken.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see deleteUserData for the plain version.\n     */\n    deleteUserDataWithHTTPInfo(\n      { userToken }: DeleteUserDataProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('userToken', 'deleteUserDataWithHTTPInfo', userToken);\n\n      const requestPath = '/agent-studio/1/user-data/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Exports all conversations based on the passed filters.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param exportConversations - The exportConversations object.\n     * @param exportConversations.agentId - The agentId.\n     * @param exportConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param exportConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    exportConversations(\n      { agentId, startDate, endDate }: ExportConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<Array<ConversationFullResponse>> {\n      validateRequired('agentId', 'exportConversations', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/export'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Exports all conversations based on the passed filters.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param exportConversations - The exportConversations object.\n     * @param exportConversations.agentId - The agentId.\n     * @param exportConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param exportConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see exportConversations for the plain version.\n     */\n    exportConversationsWithHTTPInfo(\n      { agentId, startDate, endDate }: ExportConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Array<ConversationFullResponse>>> {\n      validateRequired('agentId', 'exportConversationsWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/export'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Retrieve details of the specified agent.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getAgent - The getAgent object.\n     * @param getAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getAgent({ agentId }: GetAgentProps, requestOptions?: RequestOptions): Promise<AgentWithVersionResponse> {\n      validateRequired('agentId', 'getAgent', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Retrieve details of the specified agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getAgent - The getAgent object.\n     * @param getAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getAgent for the plain version.\n     */\n    getAgentWithHTTPInfo(\n      { agentId }: GetAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AgentWithVersionResponse>> {\n      validateRequired('agentId', 'getAgentWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get a single allowed domain by id.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getAllowedDomain - The getAllowedDomain object.\n     * @param getAllowedDomain.domainId - The domainId.\n     * @param getAllowedDomain.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getAllowedDomain(\n      { domainId, agentId }: GetAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AllowedDomainResponse> {\n      validateRequired('domainId', 'getAllowedDomain', domainId);\n\n      validateRequired('agentId', 'getAllowedDomain', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/{domainId}'\n        .replace('{domainId}', encodeURIComponent(domainId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get a single allowed domain by id.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getAllowedDomain - The getAllowedDomain object.\n     * @param getAllowedDomain.domainId - The domainId.\n     * @param getAllowedDomain.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getAllowedDomain for the plain version.\n     */\n    getAllowedDomainWithHTTPInfo(\n      { domainId, agentId }: GetAllowedDomainProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AllowedDomainResponse>> {\n      validateRequired('domainId', 'getAllowedDomainWithHTTPInfo', domainId);\n\n      validateRequired('agentId', 'getAllowedDomainWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains/{domainId}'\n        .replace('{domainId}', encodeURIComponent(domainId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get Configuration.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getConfiguration(requestOptions?: RequestOptions | undefined): Promise<ApplicationConfigResponse> {\n      const requestPath = '/agent-studio/1/configuration';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get Configuration.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getConfiguration for the plain version.\n     */\n    getConfigurationWithHTTPInfo(\n      requestOptions?: RequestOptions | undefined,\n    ): Promise<AlgoliaHttpResponse<ApplicationConfigResponse>> {\n      const requestPath = '/agent-studio/1/configuration';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Retrieves the conversation and its messages for the given ID.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param getConversation - The getConversation object.\n     * @param getConversation.conversationId - The conversationId.\n     * @param getConversation.agentId - The agentId.\n     * @param getConversation.includeFeedback - Include feedback for the conversation.\n     * @param getConversation.includeMessageEvents - Include Insights events attributed to each assistant message.\n     * @param getConversation.includeImpactAnalytics - Include outcome signals (hasView, hasClick, hasConversion) for the conversation.\n     * @param getConversation.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getConversation(\n      {\n        conversationId,\n        agentId,\n        includeFeedback,\n        includeMessageEvents,\n        includeImpactAnalytics,\n        xAlgoliaSecureUserToken,\n      }: GetConversationProps,\n      requestOptions?: RequestOptions,\n    ): Promise<ConversationFullResponse> {\n      validateRequired('conversationId', 'getConversation', conversationId);\n\n      validateRequired('agentId', 'getConversation', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/{conversationId}'\n        .replace('{conversationId}', encodeURIComponent(conversationId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (includeFeedback !== undefined) {\n        queryParameters['includeFeedback'] = includeFeedback.toString();\n      }\n\n      if (includeMessageEvents !== undefined) {\n        queryParameters['includeMessageEvents'] = includeMessageEvents.toString();\n      }\n\n      if (includeImpactAnalytics !== undefined) {\n        queryParameters['includeImpactAnalytics'] = includeImpactAnalytics.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Retrieves the conversation and its messages for the given ID.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param getConversation - The getConversation object.\n     * @param getConversation.conversationId - The conversationId.\n     * @param getConversation.agentId - The agentId.\n     * @param getConversation.includeFeedback - Include feedback for the conversation.\n     * @param getConversation.includeMessageEvents - Include Insights events attributed to each assistant message.\n     * @param getConversation.includeImpactAnalytics - Include outcome signals (hasView, hasClick, hasConversion) for the conversation.\n     * @param getConversation.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getConversation for the plain version.\n     */\n    getConversationWithHTTPInfo(\n      {\n        conversationId,\n        agentId,\n        includeFeedback,\n        includeMessageEvents,\n        includeImpactAnalytics,\n        xAlgoliaSecureUserToken,\n      }: GetConversationProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ConversationFullResponse>> {\n      validateRequired('conversationId', 'getConversationWithHTTPInfo', conversationId);\n\n      validateRequired('agentId', 'getConversationWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations/{conversationId}'\n        .replace('{conversationId}', encodeURIComponent(conversationId))\n        .replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (includeFeedback !== undefined) {\n        queryParameters['includeFeedback'] = includeFeedback.toString();\n      }\n\n      if (includeMessageEvents !== undefined) {\n        queryParameters['includeMessageEvents'] = includeMessageEvents.toString();\n      }\n\n      if (includeImpactAnalytics !== undefined) {\n        queryParameters['includeImpactAnalytics'] = includeImpactAnalytics.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get Provider.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getProvider - The getProvider object.\n     * @param getProvider.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getProvider(\n      { providerId }: GetProviderProps,\n      requestOptions?: RequestOptions,\n    ): Promise<ProviderAuthenticationResponse> {\n      validateRequired('providerId', 'getProvider', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get Provider.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getProvider - The getProvider object.\n     * @param getProvider.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getProvider for the plain version.\n     */\n    getProviderWithHTTPInfo(\n      { providerId }: GetProviderProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ProviderAuthenticationResponse>> {\n      validateRequired('providerId', 'getProviderWithHTTPInfo', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get Secret Key.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getSecretKey - The getSecretKey object.\n     * @param getSecretKey.secretKeyId - The secretKeyId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getSecretKey({ secretKeyId }: GetSecretKeyProps, requestOptions?: RequestOptions): Promise<SecretKeyResponse> {\n      validateRequired('secretKeyId', 'getSecretKey', secretKeyId);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get Secret Key.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param getSecretKey - The getSecretKey object.\n     * @param getSecretKey.secretKeyId - The secretKeyId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getSecretKey for the plain version.\n     */\n    getSecretKeyWithHTTPInfo(\n      { secretKeyId }: GetSecretKeyProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<SecretKeyResponse>> {\n      validateRequired('secretKeyId', 'getSecretKeyWithHTTPInfo', secretKeyId);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Retrieves all memories, conversations and their messages for the given user token.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param getUserData - The getUserData object.\n     * @param getUserData.userToken - The userToken.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    getUserData({ userToken }: GetUserDataProps, requestOptions?: RequestOptions): Promise<UserDataResponse> {\n      validateRequired('userToken', 'getUserData', userToken);\n\n      const requestPath = '/agent-studio/1/user-data/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Retrieves all memories, conversations and their messages for the given user token.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param getUserData - The getUserData object.\n     * @param getUserData.userToken - The userToken.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see getUserData for the plain version.\n     */\n    getUserDataWithHTTPInfo(\n      { userToken }: GetUserDataProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<UserDataResponse>> {\n      validateRequired('userToken', 'getUserDataWithHTTPInfo', userToken);\n\n      const requestPath = '/agent-studio/1/user-data/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Invalidate cached completions and task outputs for this agent. Filter with `before` (exclusive).\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param invalidateAgentCache - The invalidateAgentCache object.\n     * @param invalidateAgentCache.agentId - The agentId.\n     * @param invalidateAgentCache.before - Delete entries strictly before this date (exclusive, YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    invalidateAgentCache(\n      { agentId, before }: InvalidateAgentCacheProps,\n      requestOptions?: RequestOptions,\n    ): Promise<void> {\n      validateRequired('agentId', 'invalidateAgentCache', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/cache'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (before !== undefined) {\n        queryParameters['before'] = before.toString();\n      }\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Invalidate cached completions and task outputs for this agent. Filter with `before` (exclusive).\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param invalidateAgentCache - The invalidateAgentCache object.\n     * @param invalidateAgentCache.agentId - The agentId.\n     * @param invalidateAgentCache.before - Delete entries strictly before this date (exclusive, YYYY-MM-DD).\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see invalidateAgentCache for the plain version.\n     */\n    invalidateAgentCacheWithHTTPInfo(\n      { agentId, before }: InvalidateAgentCacheProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<void>> {\n      validateRequired('agentId', 'invalidateAgentCacheWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/cache'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (before !== undefined) {\n        queryParameters['before'] = before.toString();\n      }\n\n      const request: Request = {\n        method: 'DELETE',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * List all allowed domain patterns for this agent.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listAgentAllowedDomains - The listAgentAllowedDomains object.\n     * @param listAgentAllowedDomains.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listAgentAllowedDomains(\n      { agentId }: ListAgentAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AllowedDomainListResponse> {\n      validateRequired('agentId', 'listAgentAllowedDomains', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * List all allowed domain patterns for this agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listAgentAllowedDomains - The listAgentAllowedDomains object.\n     * @param listAgentAllowedDomains.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listAgentAllowedDomains for the plain version.\n     */\n    listAgentAllowedDomainsWithHTTPInfo(\n      { agentId }: ListAgentAllowedDomainsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AllowedDomainListResponse>> {\n      validateRequired('agentId', 'listAgentAllowedDomainsWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/allowed-domains'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Retrieves the conversations for the given agent ID.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param listAgentConversations - The listAgentConversations object.\n     * @param listAgentConversations.agentId - The agentId.\n     * @param listAgentConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param listAgentConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param listAgentConversations.includeFeedback - Include feedback per conversation.\n     * @param listAgentConversations.feedbackVote - Filter by feedback value (requires includeFeedback=true).\n     * @param listAgentConversations.page - Page number.\n     * @param listAgentConversations.limit - Items per page.\n     * @param listAgentConversations.includeImpactAnalytics - Include impact analytics (hasView, hasClick, hasConversion) per conversation.\n     * @param listAgentConversations.clicked - Filter by conversations with at least one item click.\n     * @param listAgentConversations.converted - Filter by conversations with at least one conversion.\n     * @param listAgentConversations.hasAlgoliaSearch - Filter by conversations where the search tool was used.\n     * @param listAgentConversations.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listAgentConversations(\n      {\n        agentId,\n        startDate,\n        endDate,\n        includeFeedback,\n        feedbackVote,\n        page,\n        limit,\n        includeImpactAnalytics,\n        clicked,\n        converted,\n        hasAlgoliaSearch,\n        xAlgoliaSecureUserToken,\n      }: ListAgentConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<PaginatedConversationsResponse> {\n      validateRequired('agentId', 'listAgentConversations', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      if (includeFeedback !== undefined) {\n        queryParameters['includeFeedback'] = includeFeedback.toString();\n      }\n\n      if (feedbackVote !== undefined) {\n        queryParameters['feedbackVote'] = feedbackVote.toString();\n      }\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      if (includeImpactAnalytics !== undefined) {\n        queryParameters['includeImpactAnalytics'] = includeImpactAnalytics.toString();\n      }\n\n      if (clicked !== undefined) {\n        queryParameters['clicked'] = clicked.toString();\n      }\n\n      if (converted !== undefined) {\n        queryParameters['converted'] = converted.toString();\n      }\n\n      if (hasAlgoliaSearch !== undefined) {\n        queryParameters['hasAlgoliaSearch'] = hasAlgoliaSearch.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Retrieves the conversations for the given agent ID.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param listAgentConversations - The listAgentConversations object.\n     * @param listAgentConversations.agentId - The agentId.\n     * @param listAgentConversations.startDate - Filter conversations created after this date (format: YYYY-MM-DD).\n     * @param listAgentConversations.endDate - Filter conversations created before this date (format: YYYY-MM-DD).\n     * @param listAgentConversations.includeFeedback - Include feedback per conversation.\n     * @param listAgentConversations.feedbackVote - Filter by feedback value (requires includeFeedback=true).\n     * @param listAgentConversations.page - Page number.\n     * @param listAgentConversations.limit - Items per page.\n     * @param listAgentConversations.includeImpactAnalytics - Include impact analytics (hasView, hasClick, hasConversion) per conversation.\n     * @param listAgentConversations.clicked - Filter by conversations with at least one item click.\n     * @param listAgentConversations.converted - Filter by conversations with at least one conversion.\n     * @param listAgentConversations.hasAlgoliaSearch - Filter by conversations where the search tool was used.\n     * @param listAgentConversations.xAlgoliaSecureUserToken - The X-Algolia-Secure-User-Token.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listAgentConversations for the plain version.\n     */\n    listAgentConversationsWithHTTPInfo(\n      {\n        agentId,\n        startDate,\n        endDate,\n        includeFeedback,\n        feedbackVote,\n        page,\n        limit,\n        includeImpactAnalytics,\n        clicked,\n        converted,\n        hasAlgoliaSearch,\n        xAlgoliaSecureUserToken,\n      }: ListAgentConversationsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<PaginatedConversationsResponse>> {\n      validateRequired('agentId', 'listAgentConversationsWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/conversations'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (startDate !== undefined) {\n        queryParameters['startDate'] = startDate.toString();\n      }\n\n      if (endDate !== undefined) {\n        queryParameters['endDate'] = endDate.toString();\n      }\n\n      if (includeFeedback !== undefined) {\n        queryParameters['includeFeedback'] = includeFeedback.toString();\n      }\n\n      if (feedbackVote !== undefined) {\n        queryParameters['feedbackVote'] = feedbackVote.toString();\n      }\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      if (includeImpactAnalytics !== undefined) {\n        queryParameters['includeImpactAnalytics'] = includeImpactAnalytics.toString();\n      }\n\n      if (clicked !== undefined) {\n        queryParameters['clicked'] = clicked.toString();\n      }\n\n      if (converted !== undefined) {\n        queryParameters['converted'] = converted.toString();\n      }\n\n      if (hasAlgoliaSearch !== undefined) {\n        queryParameters['hasAlgoliaSearch'] = hasAlgoliaSearch.toString();\n      }\n\n      if (xAlgoliaSecureUserToken !== undefined) {\n        headers['X-Algolia-Secure-User-Token'] = xAlgoliaSecureUserToken.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * List all agents with pagination and filtering.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listAgents - The listAgents object.\n     * @param listAgents.page - Page number.\n     * @param listAgents.limit - Items per page.\n     * @param listAgents.providerId - Filter by provider id.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listAgents(\n      { page, limit, providerId }: ListAgentsProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<PaginatedAgentsResponse> {\n      const requestPath = '/agent-studio/1/agents';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      if (providerId !== undefined) {\n        queryParameters['providerId'] = providerId.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * List all agents with pagination and filtering.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listAgents - The listAgents object.\n     * @param listAgents.page - Page number.\n     * @param listAgents.limit - Items per page.\n     * @param listAgents.providerId - Filter by provider id.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listAgents for the plain version.\n     */\n    listAgentsWithHTTPInfo(\n      { page, limit, providerId }: ListAgentsProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<AlgoliaHttpResponse<PaginatedAgentsResponse>> {\n      const requestPath = '/agent-studio/1/agents';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      if (providerId !== undefined) {\n        queryParameters['providerId'] = providerId.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get Provider Models.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listModels(requestOptions?: RequestOptions | undefined): Promise<{ [key: string]: Array<string> }> {\n      const requestPath = '/agent-studio/1/providers/models';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get Provider Models.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listModels for the plain version.\n     */\n    listModelsWithHTTPInfo(\n      requestOptions?: RequestOptions | undefined,\n    ): Promise<AlgoliaHttpResponse<{ [key: string]: Array<string> }>> {\n      const requestPath = '/agent-studio/1/providers/models';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Get available models for a specific provider.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listProviderModels - The listProviderModels object.\n     * @param listProviderModels.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listProviderModels(\n      { providerId }: ListProviderModelsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<Array<string>> {\n      validateRequired('providerId', 'listProviderModels', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}/models'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Get available models for a specific provider.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listProviderModels - The listProviderModels object.\n     * @param listProviderModels.providerId - The providerId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listProviderModels for the plain version.\n     */\n    listProviderModelsWithHTTPInfo(\n      { providerId }: ListProviderModelsProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<Array<string>>> {\n      validateRequired('providerId', 'listProviderModelsWithHTTPInfo', providerId);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}/models'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * List Providers.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listProviders - The listProviders object.\n     * @param listProviders.page - Page number.\n     * @param listProviders.limit - Items per page.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listProviders(\n      { page, limit }: ListProvidersProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<PaginatedProviderAuthenticationsResponse> {\n      const requestPath = '/agent-studio/1/providers';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * List Providers.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listProviders - The listProviders object.\n     * @param listProviders.page - Page number.\n     * @param listProviders.limit - Items per page.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listProviders for the plain version.\n     */\n    listProvidersWithHTTPInfo(\n      { page, limit }: ListProvidersProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<AlgoliaHttpResponse<PaginatedProviderAuthenticationsResponse>> {\n      const requestPath = '/agent-studio/1/providers';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * List Secret Keys.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listSecretKeys - The listSecretKeys object.\n     * @param listSecretKeys.page - Page number.\n     * @param listSecretKeys.limit - Items per page.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    listSecretKeys(\n      { page, limit }: ListSecretKeysProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<PaginatedSecretKeysResponse> {\n      const requestPath = '/agent-studio/1/secret-keys';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * List Secret Keys.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - settings\n     * @param listSecretKeys - The listSecretKeys object.\n     * @param listSecretKeys.page - Page number.\n     * @param listSecretKeys.limit - Items per page.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see listSecretKeys for the plain version.\n     */\n    listSecretKeysWithHTTPInfo(\n      { page, limit }: ListSecretKeysProps = {},\n      requestOptions: RequestOptions | undefined = undefined,\n    ): Promise<AlgoliaHttpResponse<PaginatedSecretKeysResponse>> {\n      const requestPath = '/agent-studio/1/secret-keys';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      if (page !== undefined) {\n        queryParameters['page'] = page.toString();\n      }\n\n      if (limit !== undefined) {\n        queryParameters['limit'] = limit.toString();\n      }\n\n      const request: Request = {\n        method: 'GET',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Publish the specified agent.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param publishAgent - The publishAgent object.\n     * @param publishAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    publishAgent({ agentId }: PublishAgentProps, requestOptions?: RequestOptions): Promise<AgentWithVersionResponse> {\n      validateRequired('agentId', 'publishAgent', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/publish'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Publish the specified agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param publishAgent - The publishAgent object.\n     * @param publishAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see publishAgent for the plain version.\n     */\n    publishAgentWithHTTPInfo(\n      { agentId }: PublishAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AgentWithVersionResponse>> {\n      validateRequired('agentId', 'publishAgentWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/publish'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Deterministically trim a conversation payload (no LLM calls).  Keep the last N messages and/or fit a heuristic token budget, optionally dropping tool parts from what is kept (tool parts are stripped before the budget is applied). Returns the trimmed messages plus before/after stats.  With no constraints set, the messages are returned unchanged and only the stats are computed - a deliberate, cheap \\\"how big is my context?\\\" probe (no LLM call, no mutation).\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param contextTrimRequest - The contextTrimRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    trimContext(contextTrimRequest: ContextTrimRequest, requestOptions?: RequestOptions): Promise<ContextResponse> {\n      validateRequired('contextTrimRequest', 'trimContext', contextTrimRequest);\n\n      validateRequired('contextTrimRequest.messages', 'trimContext', contextTrimRequest.messages);\n\n      const requestPath = '/agent-studio/1/unstable/context/trim';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: contextTrimRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Deterministically trim a conversation payload (no LLM calls).  Keep the last N messages and/or fit a heuristic token budget, optionally dropping tool parts from what is kept (tool parts are stripped before the budget is applied). Returns the trimmed messages plus before/after stats.  With no constraints set, the messages are returned unchanged and only the stats are computed - a deliberate, cheap \\\"how big is my context?\\\" probe (no LLM call, no mutation).\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param contextTrimRequest - The contextTrimRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see trimContext for the plain version.\n     */\n    trimContextWithHTTPInfo(\n      contextTrimRequest: ContextTrimRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ContextResponse>> {\n      validateRequired('contextTrimRequest', 'trimContextWithHTTPInfo', contextTrimRequest);\n\n      validateRequired('contextTrimRequest.messages', 'trimContextWithHTTPInfo', contextTrimRequest.messages);\n\n      const requestPath = '/agent-studio/1/unstable/context/trim';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: contextTrimRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Unpublish the specified agent.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param unpublishAgent - The unpublishAgent object.\n     * @param unpublishAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    unpublishAgent(\n      { agentId }: UnpublishAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AgentWithVersionResponse> {\n      validateRequired('agentId', 'unpublishAgent', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/unpublish'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Unpublish the specified agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param unpublishAgent - The unpublishAgent object.\n     * @param unpublishAgent.agentId - The agentId.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see unpublishAgent for the plain version.\n     */\n    unpublishAgentWithHTTPInfo(\n      { agentId }: UnpublishAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AgentWithVersionResponse>> {\n      validateRequired('agentId', 'unpublishAgentWithHTTPInfo', agentId);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}/unpublish'.replace(\n        '{agentId}',\n        encodeURIComponent(agentId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'POST',\n        path: requestPath,\n        queryParameters,\n        headers,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Update the specified agent.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param updateAgent - The updateAgent object.\n     * @param updateAgent.agentId - The agentId.\n     * @param updateAgent.agentConfigUpdate - The agentConfigUpdate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    updateAgent(\n      { agentId, agentConfigUpdate }: UpdateAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AgentWithVersionResponse> {\n      validateRequired('agentId', 'updateAgent', agentId);\n\n      validateRequired('agentConfigUpdate', 'updateAgent', agentConfigUpdate);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentConfigUpdate,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Update the specified agent.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param updateAgent - The updateAgent object.\n     * @param updateAgent.agentId - The agentId.\n     * @param updateAgent.agentConfigUpdate - The agentConfigUpdate object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see updateAgent for the plain version.\n     */\n    updateAgentWithHTTPInfo(\n      { agentId, agentConfigUpdate }: UpdateAgentProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<AgentWithVersionResponse>> {\n      validateRequired('agentId', 'updateAgentWithHTTPInfo', agentId);\n\n      validateRequired('agentConfigUpdate', 'updateAgentWithHTTPInfo', agentConfigUpdate);\n\n      const requestPath = '/agent-studio/1/agents/{agentId}'.replace('{agentId}', encodeURIComponent(agentId));\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: agentConfigUpdate,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Patch Configuration.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param applicationConfigPatch - The applicationConfigPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    updateConfiguration(\n      applicationConfigPatch: ApplicationConfigPatch,\n      requestOptions?: RequestOptions,\n    ): Promise<ApplicationConfigResponse> {\n      validateRequired('applicationConfigPatch', 'updateConfiguration', applicationConfigPatch);\n\n      const requestPath = '/agent-studio/1/configuration';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: applicationConfigPatch,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Patch Configuration.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - logs\n     * @param applicationConfigPatch - The applicationConfigPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see updateConfiguration for the plain version.\n     */\n    updateConfigurationWithHTTPInfo(\n      applicationConfigPatch: ApplicationConfigPatch,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ApplicationConfigResponse>> {\n      validateRequired('applicationConfigPatch', 'updateConfigurationWithHTTPInfo', applicationConfigPatch);\n\n      const requestPath = '/agent-studio/1/configuration';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: applicationConfigPatch,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Update an existing feedback entry.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param feedbackUpdateRequest - The feedbackUpdateRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    updateFeedback(\n      feedbackUpdateRequest: FeedbackUpdateRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<FeedbackResponse> {\n      validateRequired('feedbackUpdateRequest', 'updateFeedback', feedbackUpdateRequest);\n\n      validateRequired('feedbackUpdateRequest.messageId', 'updateFeedback', feedbackUpdateRequest.messageId);\n      validateRequired('feedbackUpdateRequest.agentId', 'updateFeedback', feedbackUpdateRequest.agentId);\n\n      const requestPath = '/agent-studio/1/feedback';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: feedbackUpdateRequest,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Update an existing feedback entry.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - search\n     * @param feedbackUpdateRequest - The feedbackUpdateRequest object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see updateFeedback for the plain version.\n     */\n    updateFeedbackWithHTTPInfo(\n      feedbackUpdateRequest: FeedbackUpdateRequest,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<FeedbackResponse>> {\n      validateRequired('feedbackUpdateRequest', 'updateFeedbackWithHTTPInfo', feedbackUpdateRequest);\n\n      validateRequired(\n        'feedbackUpdateRequest.messageId',\n        'updateFeedbackWithHTTPInfo',\n        feedbackUpdateRequest.messageId,\n      );\n      validateRequired('feedbackUpdateRequest.agentId', 'updateFeedbackWithHTTPInfo', feedbackUpdateRequest.agentId);\n\n      const requestPath = '/agent-studio/1/feedback';\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: feedbackUpdateRequest,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Update Provider.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param updateProvider - The updateProvider object.\n     * @param updateProvider.providerId - The providerId.\n     * @param updateProvider.providerAuthenticationPatch - The providerAuthenticationPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    updateProvider(\n      { providerId, providerAuthenticationPatch }: UpdateProviderProps,\n      requestOptions?: RequestOptions,\n    ): Promise<ProviderAuthenticationResponse> {\n      validateRequired('providerId', 'updateProvider', providerId);\n\n      validateRequired('providerAuthenticationPatch', 'updateProvider', providerAuthenticationPatch);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: providerAuthenticationPatch,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Update Provider.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - editSettings\n     * @param updateProvider - The updateProvider object.\n     * @param updateProvider.providerId - The providerId.\n     * @param updateProvider.providerAuthenticationPatch - The providerAuthenticationPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see updateProvider for the plain version.\n     */\n    updateProviderWithHTTPInfo(\n      { providerId, providerAuthenticationPatch }: UpdateProviderProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<ProviderAuthenticationResponse>> {\n      validateRequired('providerId', 'updateProviderWithHTTPInfo', providerId);\n\n      validateRequired('providerAuthenticationPatch', 'updateProviderWithHTTPInfo', providerAuthenticationPatch);\n\n      const requestPath = '/agent-studio/1/providers/{providerId}'.replace(\n        '{providerId}',\n        encodeURIComponent(providerId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: providerAuthenticationPatch,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n\n    /**\n     * Patch Secret Key.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param updateSecretKey - The updateSecretKey object.\n     * @param updateSecretKey.secretKeyId - The secretKeyId.\n     * @param updateSecretKey.secretKeyPatch - The secretKeyPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     */\n    updateSecretKey(\n      { secretKeyId, secretKeyPatch }: UpdateSecretKeyProps,\n      requestOptions?: RequestOptions,\n    ): Promise<SecretKeyResponse> {\n      validateRequired('secretKeyId', 'updateSecretKey', secretKeyId);\n\n      validateRequired('secretKeyPatch', 'updateSecretKey', secretKeyPatch);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: secretKeyPatch,\n      };\n\n      return transporter.request(request, requestOptions);\n    },\n    /**\n     * Patch Secret Key.\n     *\n     * Resolves with the full HTTP response information: status code, headers (when the requester captures them), raw body and deserialized data. Bypasses the requests and responses caches: always performs the API call.\n     *\n     * Required API Key ACLs:\n     *  - admin\n     * @param updateSecretKey - The updateSecretKey object.\n     * @param updateSecretKey.secretKeyId - The secretKeyId.\n     * @param updateSecretKey.secretKeyPatch - The secretKeyPatch object.\n     * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n     * @see updateSecretKey for the plain version.\n     */\n    updateSecretKeyWithHTTPInfo(\n      { secretKeyId, secretKeyPatch }: UpdateSecretKeyProps,\n      requestOptions?: RequestOptions,\n    ): Promise<AlgoliaHttpResponse<SecretKeyResponse>> {\n      validateRequired('secretKeyId', 'updateSecretKeyWithHTTPInfo', secretKeyId);\n\n      validateRequired('secretKeyPatch', 'updateSecretKeyWithHTTPInfo', secretKeyPatch);\n\n      const requestPath = '/agent-studio/1/secret-keys/{secretKeyId}'.replace(\n        '{secretKeyId}',\n        encodeURIComponent(secretKeyId),\n      );\n      const headers: Headers = {};\n      const queryParameters: QueryParameters = {};\n\n      const request: Request = {\n        method: 'PATCH',\n        path: requestPath,\n        queryParameters,\n        headers,\n        data: secretKeyPatch,\n      };\n\n      return transporter.requestWithHttpInfo(request, requestOptions);\n    },\n  };\n}\n"],"mappings":"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","names":["import_client_common"]}