import { CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, PlainObject, ResponseList, ResponseObject, Status } from '../core'; export declare class Ai extends CrowdinApi { /** * @requiredScope ai.prompt:read * @deprecated AI Custom Placeholders APIs are deprecated. * @param options request options * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.custom.placeholders.getMany */ listAiOrganizationCustomPlaceholders(options?: PaginationOptions): Promise>; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.post */ addAiOrganizationCustomPlaceholder(request: AiModel.AddCustomPlaceholderRequest): Promise>; /** * @requiredScope ai.prompt:read * @deprecated AI Custom Placeholders APIs are deprecated. * @param aiCustomPlaceholderId ai custom placeholder identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.get */ getAiOrganizationCustomPlaceholder(aiCustomPlaceholderId: number): Promise>; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param aiCustomPlaceholderId ai custom placeholder identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.delete */ deleteAiOrganizationCustomPlaceholder(aiCustomPlaceholderId: number): Promise; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param aiCustomPlaceholderId ai custom placeholder identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.settings.custom-placeholders.patch */ editAiOrganizationCustomPlaceholder(aiCustomPlaceholderId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.prompt:read * @param options optional parameters for the request * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.snippets.getMany */ listAiOrganizationSnippets(options?: PaginationOptions): Promise>; /** * @requiredScope ai.prompt:write * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.snippets.post */ addAiOrganizationSnippet(request: AiModel.AddAiSnippetRequest): Promise>; /** * @requiredScope ai.prompt:read * @param aiSnippetId ai snippet identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.snippets.get */ getAiOrganizationSnippet(aiSnippetId: number): Promise>; /** * @requiredScope ai.prompt:write * @param aiSnippetId ai snippet identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.snippets.delete */ deleteAiOrganizationSnippet(aiSnippetId: number): Promise; /** * @requiredScope ai.prompt:write * @param aiSnippetId ai snippet identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.snippets.patch */ editAiOrganizationSnippet(aiSnippetId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.datasets.post */ generateAiOrganizationPromptFineTuningDataset(aiPromptId: number, request: AiModel.GenerateFineTuningDataset): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.datasets.get */ getAiOrganizationPromptFineTuningDatasetStatus(aiPromptId: number, jobIdentifier: string): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @param options request options * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.events.getMany */ listAiOrganizationPromptFineTuningEvents(aiPromptId: number, jobIdentifier: string, options?: PaginationOptions): Promise>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param options request options * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.getMany */ listAiOrganizationPromptFineTuningJobs(options?: AiModel.ListPromptFineTuningJobsOptions): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.post */ createAiOrganizationPromptFineTuningJob(aiPromptId: number, request: AiModel.GenerateFineTuningJob): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.get */ getAiOrganizationPromptFineTuningJobStatus(aiPromptId: number, jobIdentifier: string): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.get */ downloadAiOrganizationPromptFineTuningDataset(aiPromptId: number, jobIdentifier: string): Promise>; /** * @requiredScope ai.prompt:write * @param aiPromptId ai prompt identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.clones.post */ cloneAiOrganizationPrompt(aiPromptId: number, request?: { name?: string; }): Promise>; /** * @requiredScope ai.prompt:read * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.getMany */ listAiOrganizationPrompts(options?: AiModel.ListAiPromptsOptions): Promise>; /** * @requiredScope ai.prompt:write * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.post */ addAiOrganizationPrompt(request: AiModel.AddAiPromptRequest): Promise>; /** * @requiredScope ai.prompt:read * @param aiPromptId ai Prompt identifier * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.completions.post */ generateAiOrganizationPromptCompletion(aiPromptId: number, request: AiModel.GenerateAiPromptCompletionRequest): Promise>>; /** * @requiredScope ai.prompt:read * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.completions.get */ getAiOrganizationPromptCompletionStatus(aiPromptId: number, completionId: string): Promise>>; /** * @requiredScope ai.prompt:read * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.completions.delete */ cancelAiOrganizationPromptCompletion(aiPromptId: number, completionId: string): Promise; /** * @requiredScope ai.prompt:read * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.prompts.completions.download.download */ downloadAiOrganizationPromptCompletion(aiPromptId: number, completionId: string): Promise>; /** * @requiredScope ai.prompt:read * @param aiPromptId ai Prompt identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.get */ getAiOrganizationPrompt(aiPromptId: number): Promise>; /** * @requiredScope ai.prompt:write * @param aiPromptId ai Prompt identifier * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.delete */ deleteAiOrganizationPrompt(aiPromptId: number): Promise; /** * @requiredScope ai.prompt:write * @param aiPromptId ai Prompt identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.patch */ editAiOrganizationPrompt(aiPromptId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.provider:read * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.getMany */ listAiOrganizationProviders(options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:write * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.post */ addAiOrganizationProvider(request: AiModel.AddAiProviderRequest): Promise>; /** * @requiredScope ai.provider:read * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.get */ getAiOrganizationProvider(aiProviderId: number): Promise>; /** * @requiredScope ai.provider:write * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.delete */ deleteAiOrganizationProvider(aiProviderId: number): Promise; /** * @requiredScope ai.provider:write * @param aiProviderId ai Provider identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.patch */ editAiOrganizationProvider(aiProviderId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.provider:read * @param aiProviderId ai Provider identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.models.getMany */ listAiOrganizationProviderModels(aiProviderId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:read * @param options optional parameters for the request * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.providers.models.enterprise.getMany */ listAiOrganizationAllProviderModels(options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:read * @param options optional parameters for the request * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.providers.supported-models.enterprise.getMany */ listAiOrganizationSupportedProviderModels(options?: AiModel.ListSupportedProviderModelsOptions): Promise>; /** * @requiredScope ai.proxy:read * @param aiProviderId ai Provider identifier * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.chat.completions.post */ createAiOrganizationProxyChatCompletion(aiProviderId: number, request?: AiModel.OtherChatCompletionRequest | AiModel.GoogleGeminiChatCompletionRequest): Promise>; /** * @requiredScope ai.provider:read * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.reports.post */ generateAiOrganizationReport(request: AiModel.AiReport): Promise>>; /** * @requiredScope ai.provider:read * @param aiReportId report identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.reports.get */ checkAiOrganizationReportStatus(aiReportId: string): Promise>>; /** * @requiredScope ai.provider:read * @param aiReportId report identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.reports.download.download */ downloadAiOrganizationReport(aiReportId: string): Promise>; /** * @requiredScope ai:read * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.settings.get */ getAiOrganizationSettings(): Promise>; /** * @requiredScope ai:write * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.settings.patch */ editAiOrganizationSettings(request: PatchRequest[]): Promise>; /** * @requiredScope ai.translate:write * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.translate.strings.post */ translateAiOrganizationStrings(request: AiModel.AiTranslateStringsRequest): Promise>; /** * @requiredScope ai.translate:write * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.file-translations.post */ startAiOrganizationFileTranslation(request: AiModel.AiFileTranslationRequest): Promise>>; /** * @requiredScope ai.translate:write * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.file-translations.get */ getAiOrganizationFileTranslationStatus(jobIdentifier: string): Promise>>; /** * @requiredScope ai.translate:write * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.file-translations.delete */ cancelAiOrganizationFileTranslation(jobIdentifier: string): Promise; /** * @requiredScope ai.translate:write * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.file-translations.download */ downloadAiOrganizationFileTranslation(jobIdentifier: string): Promise>; /** * @requiredScope ai.translate:write * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.file-translations.download-strings */ downloadAiOrganizationFileTranslationStrings(jobIdentifier: string): Promise>; /** * @requiredScope ai.request-log:read * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.requestLogs.getMany */ listAiOrganizationRequestLogs(options?: AiModel.ListAiRequestLogsOptions): Promise>; /** * @requiredScope ai.request-log:read * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.post */ exportAiOrganizationRequestLogs(request?: AiModel.ExportAiRequestLogsRequest): Promise>>; /** * @requiredScope ai.request-log:read * @param exportId export identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.get */ checkAiOrganizationRequestLogsExportStatus(exportId: string): Promise>>; /** * @requiredScope ai.request-log:read * @param exportId export identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.download */ downloadAiOrganizationRequestLogsExport(exportId: string): Promise>; /** * @requiredScope ai:read * @param options optional parameters for the request * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.usage.members.getMany */ listAiOrganizationUsageMembers(options?: AiModel.ListAiUsageMembersOptions): Promise>; /** * @requiredScope ai:read * @param memberId user identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.usage.members.get */ getAiOrganizationUsageMember(memberId: number): Promise>; /** * @requiredScope ai.proxy:read * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.enterprise.get */ organizationAiGatewayGet(aiProviderId: number, path: string): Promise>; /** * @requiredScope ai.proxy:write * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.enterprise.post */ organizationAiGatewayPost(aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.enterprise.put */ organizationAiGatewayPut(aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.enterprise.patch */ organizationAiGatewayPatch(aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.enterprise.delete */ organizationAiGatewayDelete(aiProviderId: number, path: string): Promise>; /** * @requiredScope ai.prompt:read * @deprecated AI Custom Placeholders APIs are deprecated. * @param userId user identifier * @param options request options * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompt.custom.placeholders.getMany */ listAiUserCustomPlaceholders(userId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.post */ addAiUserCustomPlaceholder(userId: number, request: AiModel.AddCustomPlaceholderRequest): Promise>; /** * @requiredScope ai.prompt:read * @deprecated AI Custom Placeholders APIs are deprecated. * @param userId user identifier * @param aiCustomPlaceholderId ai custom placeholder identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.get */ getAiUserCustomPlaceholder(userId: number, aiCustomPlaceholderId: number): Promise>; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param userId user identifier * @param aiCustomPlaceholderId ai custom placeholder identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.delete */ deleteAiUserCustomPlaceholder(userId: number, aiCustomPlaceholderId: number): Promise; /** * @requiredScope ai.prompt:write * @deprecated AI Custom Placeholders APIs are deprecated. * @param userId user identifier * @param aiCustomPlaceholderId ai custom placeholder identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.settings.custom-placeholders.patch */ editAiUserCustomPlaceholder(userId: number, aiCustomPlaceholderId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param options optional parameters for the request * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.snippets.getMany */ listAiUserSnippets(userId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.snippets.post */ addAiUserSnippet(userId: number, request: AiModel.AddAiSnippetRequest): Promise>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiSnippetId ai snippet identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.snippets.get */ getAiUserSnippet(userId: number, aiSnippetId: number): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param aiSnippetId ai snippet identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.snippets.delete */ deleteAiUserSnippet(userId: number, aiSnippetId: number): Promise; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param aiSnippetId ai snippet identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.snippets.patch */ editAiUserSnippet(userId: number, aiSnippetId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.datasets.post */ generateAiUserPromptFineTuningDataset(userId: number, aiPromptId: number, request: AiModel.GenerateFineTuningDataset): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.fine-tuning.datasets.get */ getAiUserPromptFineTuningDatasetStatus(userId: number, aiPromptId: number, jobIdentifier: string): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @param options request options * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.events.getMany */ listAiUserPromptFineTuningEvents(userId: number, aiPromptId: number, jobIdentifier: string, options?: PaginationOptions): Promise>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param options request options * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.getMany */ listAiUserPromptFineTuningJobs(userId: number, options?: AiModel.ListPromptFineTuningJobsOptions): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.fine-tuning.jobs.post */ createAiUserPromptFineTuningJob(userId: number, aiPromptId: number, request: AiModel.GenerateFineTuningJob): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.fine-tuning.jobs.get */ getAiUserPromptFineTuningJobStatus(userId: number, aiPromptId: number, jobIdentifier: string): Promise>>; /** * @requiredScope ai.fine-tuning:read * @deprecated Fine-tuning APIs are deprecated. * @param userId user identifier * @param aiPromptId ai prompt identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.fine-tuning.datasets.download.get */ downloadAiUserPromptFineTuningDataset(userId: number, aiPromptId: number, jobIdentifier: string): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param aiPromptId ai prompt identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.clones.post */ cloneAiUserPrompt(userId: number, aiPromptId: number, request?: { name?: string; }): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.post */ listAiUserPrompts(userId: number, options?: AiModel.ListAiPromptsOptions): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.post */ addAiUserPrompt(userId: number, request: AiModel.AddAiPromptRequest): Promise>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiPromptId ai Prompt identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.prompts.completions.post */ generateAiUserPromptCompletion(userId: number, aiPromptId: number, request: AiModel.GenerateAiPromptCompletionRequest): Promise>>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.completions.get */ getAiUserPromptCompletionStatus(userId: number, aiPromptId: number, completionId: string): Promise>>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.completions.delete */ cancelAiUserPromptCompletion(userId: number, aiPromptId: number, completionId: string): Promise; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiPromptId ai Prompt identifier * @param completionId completion identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.prompts.completions.download.download */ downloadAiUserPromptCompletion(userId: number, aiPromptId: number, completionId: string): Promise>; /** * @requiredScope ai.prompt:read * @param userId user identifier * @param aiPromptId ai Prompt identifier. * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.get */ getAiUserPrompt(userId: number, aiPromptId: number): Promise>; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param aiPromptId ai Prompt identifier. * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.delete */ deleteAiUserPrompt(userId: number, aiPromptId: number): Promise; /** * @requiredScope ai.prompt:write * @param userId user identifier * @param aiPromptId ai Prompt identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.prompts.patch */ editAiUserPrompt(userId: number, aiPromptId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.ai.providers.getMany */ listAiUserProviders(userId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:write * @param userId user identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.providers.post */ addAiUserProvider(userId: number, request: AiModel.AddAiProviderRequest): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.providers.get */ getAiUserProvider(userId: number, aiProviderId: number): Promise>; /** * @requiredScope ai.provider:write * @param userId user identifier * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.providers.delete */ deleteAiUserProvider(userId: number, aiProviderId: number): Promise; /** * @requiredScope ai.provider:write * @param userId user identifier * @param aiProviderId ai Provider identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.providers.patch */ editAiUserProvider(userId: number, aiProviderId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param aiProviderId ai Provider identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.ai.providers.models.getMany */ listAiUserProviderModels(userId: number, aiProviderId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param options optional parameters for the request * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.providers.models.crowdin.getMany * */ listAiUserAllProviderModels(userId: number, options?: PaginationOptions): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param options optional parameters for the request * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.providers.supported-models.crowdin.getMany */ listAiUserSupportedProviderModels(userId: number, options?: AiModel.ListSupportedProviderModelsOptions): Promise>; /** * @requiredScope ai.proxy:read * @param userId user Identifier * @param aiProviderId ai Provider identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.providers.chat.completions.post */ createAiUserProxyChatCompletion(userId: number, aiProviderId: number, request?: AiModel.OtherChatCompletionRequest | AiModel.GoogleGeminiChatCompletionRequest): Promise>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.reports.post */ generateAiUserReport(userId: number, request: AiModel.AiReport): Promise>>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param aiReportId report identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.reports.get */ checkAiUserReportStatus(userId: number, aiReportId: string): Promise>>; /** * @requiredScope ai.provider:read * @param userId user identifier * @param aiReportId report identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.reports.download.download */ downloadAiUserReport(userId: number, aiReportId: string): Promise>; /** * @requiredScope ai:read * @param userId user Identifier * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.settings.get */ getAiUserSettings(userId: number): Promise>; /** * @requiredScope ai:write * @param userId user Identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.settings.patch */ editAiUserSettings(userId: number, request: PatchRequest[]): Promise>; /** * @requiredScope ai.translate:write * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.translate.strings.post */ translateAiUserStrings(userId: number, request: AiModel.AiTranslateStringsRequest): Promise>; /** * @requiredScope ai.translate:write * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.file-translations.post */ startAiUserFileTranslation(userId: number, request: AiModel.AiFileTranslationRequest): Promise>>; /** * @requiredScope ai.translate:write * @param userId user identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.file-translations.get */ getAiUserFileTranslationStatus(userId: number, jobIdentifier: string): Promise>>; /** * @requiredScope ai.translate:write * @param userId user identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.file-translations.delete */ cancelAiUserFileTranslation(userId: number, jobIdentifier: string): Promise; /** * @requiredScope ai.translate:write * @param userId user identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.file-translations.download */ downloadAiUserFileTranslation(userId: number, jobIdentifier: string): Promise>; /** * @requiredScope ai.translate:write * @param userId user identifier * @param jobIdentifier job identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.users.ai.file-translations.download-strings */ downloadAiUserFileTranslationStrings(userId: number, jobIdentifier: string): Promise>; /** * @requiredScope ai.request-log:read * @param userId user identifier * @param options optional parameters for the request * @see https://developer.crowdin.com/api/v2/#operation/api.ai.requestLogs.getMany */ listAiUserRequestLogs(userId: number, options?: AiModel.ListAiRequestLogsOptions): Promise>; /** * @requiredScope ai.request-log:read * @param userId user identifier * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.post */ exportAiUserRequestLogs(userId: number, request?: AiModel.ExportAiRequestLogsRequest): Promise>>; /** * @requiredScope ai.request-log:read * @param userId user identifier * @param exportId export identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.get */ checkAiUserRequestLogsExportStatus(userId: number, exportId: string): Promise>>; /** * @requiredScope ai.request-log:read * @param userId user identifier * @param exportId export identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.requestLogs.exports.download */ downloadAiUserRequestLogsExport(userId: number, exportId: string): Promise>; /** * @requiredScope ai:read * @param userId user identifier * @param options optional parameters for the request * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.usage.members.getMany */ listAiUserUsageMembers(userId: number, options?: AiModel.ListAiUsageMembersOptions): Promise>; /** * @requiredScope ai:read * @param userId user identifier * @param memberId user identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.ai.usage.members.get */ getAiUserUsageMember(userId: number, memberId: number): Promise>; /** * @requiredScope ai.proxy:read * @param userId user identifier * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @see https://support.crowdin.com/developer/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.crowdin.get */ userAiGatewayGet(userId: number, aiProviderId: number, path: string): Promise>; /** * @requiredScope ai.proxy:write * @param userId user identifier * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.crowdin.post */ userAiGatewayPost(userId: number, aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param userId user identifier * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.crowdin.put */ userAiGatewayPut(userId: number, aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param userId user identifier * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @param request request body * @see https://support.crowdin.com/developer/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.crowdin.patch */ userAiGatewayPatch(userId: number, aiProviderId: number, path: string, request?: PlainObject): Promise>; /** * @requiredScope ai.proxy:write * @param userId user identifier * @param aiProviderId ai Provider identifier * @param path raw provider API path after `/gateway/` * @see https://support.crowdin.com/developer/api/v2/#tag/AI-Gateway/operation/api.ai.providers.gateway.crowdin.delete */ userAiGatewayDelete(userId: number, aiProviderId: number, path: string): Promise>; /** * @requiredScope project:read * @param projectId project identifier * @see https://support.crowdin.com/developer/api/v2/#tag/AI/operation/api.projects.ai.settings.get */ getProjectAiSettings(projectId: number): Promise>; } export declare namespace AiModel { interface CustomPlaceholder { id: number; description: string; placeholder: string; value: string; createdAt: string; updatedAt: string; } interface AddCustomPlaceholderRequest { description: string; placeholder: string; value: string; } interface AiSnippet { id: number; description: string; placeholder: string; value: string; createdAt: string; updatedAt: string; } interface AddAiSnippetRequest { description: string; placeholder: string; value: string; } interface FineTuningDataset { projectIds: number[] | null; tmIds: number[] | null; purpose: 'training' | 'validation'; dateFrom: string | null; dateTo: string | null; maxFileSize: number | null; minExamplesCount: number | null; maxExamplesCount: number | null; } interface GenerateFineTuningDataset { projectIds?: number[]; tmIds?: number[]; purpose?: 'training' | 'validation'; dateFrom?: string; dateTo?: string; maxFileSize?: number; minExamplesCount?: number; maxExamplesCount?: number; } interface GenerateFineTuningJob { dryRun?: boolean; hyperparameters?: { batchSize: number; learningRateMultiplier: number; nEpochs: number; }; trainingOptions: Omit; validationOptions?: Omit; } interface FineTuningJob { dryRun: boolean; aiPromptId: number; hyperparameters: { batchSize: number; learningRateMultiplier: number; nEpochs: number; }; trainingOptions: Omit; validationOptions: Omit; baseModel: string; fineTunedModel: string; trainedTokensCount: number; trainingDatasetUrl: string; validationDatasetUrl: string; metadata: PlainObject; } interface PromptFineTuningEvent { id: string; type: string; message: string; data: { step: number; totalSteps: number; trainingLoss: number; validationLoss: number | null; fullValidationLoss: number | null; } | null; createdAt: string; } interface ListPromptFineTuningJobsOptions extends PaginationOptions { statuses: string; orderBy: string; } interface ListAiPromptsOptions extends PaginationOptions { projectId?: number; action?: Action; } interface AiPromptResponse { id: number; name: string; action: Action; aiProviderId: number | null; aiModelId: string | null; isEnabled: boolean; enabledProjectIds: number[]; config: AiModel.AiPromptConfigBasicPreTranslate | AiModel.AiPromptConfigBasicAligmentAction | AiModel.AiPromptConfigBasicQaCheckAction | AiModel.AiPromptConfigAdvanced | AiModel.AiPromptConfigExternal; promptPreview: string | null; isFineTuningAvailable: boolean; createdBy: number | null; updatedBy: number | null; lastUsedBy: number | null; lastUsedAt: string | null; usageCount: number; createdAt: string; updatedAt: string; } interface AiPromptConfigBasicOtherLanguageTranslations { isEnabled?: boolean; languageIds?: string[]; } interface AiPromptConfigBasicPreTranslate { mode: 'basic'; /** * @deprecated */ companyDescription?: string; /** * @deprecated */ projectDescription?: string; /** * @deprecated */ audienceDescription?: string; /** * @deprecated Use `snippets` instead. */ customPlaceholders?: string[]; snippets?: string[]; otherLanguageTranslations?: AiModel.AiPromptConfigBasicOtherLanguageTranslations; glossaryTerms?: boolean; tmSuggestions?: boolean; /** * @deprecated */ fileContent?: boolean; fileContext?: boolean; generateFileSummary?: boolean; screenshots?: boolean; projectContext?: boolean; /** * @deprecated Use `projectContext` instead. */ publicProjectDescription?: boolean; siblingsStrings?: boolean; retryOnQaIssues?: boolean; organizationContext?: boolean; } interface AiPromptConfigBasicAligmentAction { mode: 'basic'; /** * @deprecated Use `snippets` instead. */ customPlaceholders?: string[]; snippets?: string[]; projectContext?: boolean; /** * @deprecated Use `projectContext` instead. */ publicProjectDescription?: boolean; organizationContext?: boolean; } interface AiPromptConfigBasicQaCheckAction { mode: 'basic'; evaluationSteps: string[]; snippets?: string[]; glossaryTerms?: boolean; tmSuggestions?: boolean; fileContext?: boolean; screenshots?: boolean; projectContext?: boolean; /** * @deprecated Use `projectContext` instead. */ publicProjectDescription?: boolean; organizationContext?: boolean; } interface AiPromptConfigAdvanced { mode: 'advanced'; generateFileSummary?: boolean; glossaryTerms?: boolean; tmSuggestions?: boolean; screenshots?: boolean; prompt: string; otherLanguageTranslations?: AiModel.AiPromptConfigBasicOtherLanguageTranslations; retryOnQaIssues?: boolean; } interface AiPromptConfigExternal { mode: 'external'; identifier: string; key: string; options?: any; retryOnQaIssues?: boolean; } interface AddAiPromptRequest { name: string; action: Action; aiProviderId?: number; aiModelId?: string; /** * @deprecated */ isEnabled?: boolean; enabledProjectIds?: number[]; config: AiModel.AiPromptConfigBasicPreTranslate | AiModel.AiPromptConfigBasicAligmentAction | AiModel.AiPromptConfigBasicQaCheckAction | AiModel.AiPromptConfigAdvanced | AiPromptConfigExternal; } interface GenerateAiPromptCompletionRequest { resources: AiModel.AiPromptResourceWithPreTranslate | AiModel.AiPromptResourceWithAlignment | AiModel.AiPromptResourceWithQaCheck | AiModel.AiPromptResourceWithCustom; tools?: { tool: { type: 'function'; function: { description?: string; name: string; parameters?: PlainObject; }; }; }[]; tool_choice?: string | PlainObject; } interface AiPromptCompletionAttribute { aiPromptId: number; } interface AiPromptResourceWithPreTranslate { projectId: number; sourceLanguageId?: string; targetLanguageId?: string; stringIds?: number[]; overridePromptValues?: OverridePromptValues; } interface AiPromptResourceWithAlignment { projectId: number; sourceLanguageId?: string; targetLanguageId?: string; stringIds?: number[]; overridePromptValues?: OverridePromptValues; } interface AiPromptResourceWithQaCheck { projectId: number; sourceLanguageId?: string; targetLanguageId?: string; stringIds?: number[]; overridePromptValues?: OverridePromptValues; } interface AiPromptResourceWithCustom { projectId: number; sourceLanguageId?: string; targetLanguageId?: string; stringIds?: number[]; overridePromptValues?: OverridePromptValues; customInstruction?: string; } interface OverridePromptValues { [key: string]: any; } interface AiProviderResponse { id: number; name: string; type: ProviderType; credentials: AiModel.AiProviderCredentialsBasic | AiModel.AiProviderCredentialsAzureOpenAi | AiProviderCredentialsGoogleGemini | AiProviderCredentialsWatsonx | AiProviderCredentialsMicrosoftFoundry | AiProviderCredentialsCustom | null; config: AiModel.AiProviderConfig; isEnabled: boolean; useSystemCredentials: boolean; createdAt: string; updatedAt: string; promptsCount: string; } interface AiProviderCredentialsCustomHeaders { /** * Custom HTTP headers sent with every request to the provider */ headers?: Record; /** * If `true`, only the headers from `headers` are sent */ sendCustomHeadersOnly?: boolean; } interface AiProviderCredentialsBaseUrl extends AiProviderCredentialsCustomHeaders { /** * Override the provider API base URL */ baseUrl?: string; } interface AiProviderCredentialsBasic extends AiProviderCredentialsBaseUrl { apiKey: string; } interface AiProviderCredentialsAzureOpenAi extends AiProviderCredentialsBasic { resourceName: string; deploymentName: string; apiVersion: string; } interface AiProviderCredentialsGoogleGemini extends AiProviderCredentialsBaseUrl { project: string; region: string; /** * Required if `workloadIdentityFederationAudience` is not provided */ serviceAccountKey?: string; /** * Required if `serviceAccountKey` is not provided */ workloadIdentityFederationAudience?: string; serviceAccountEmail?: string; } interface AiProviderCredentialsWatsonx extends AiProviderCredentialsBaseUrl { apiKey: string; projectId: string; region: string; } interface AiProviderCredentialsMicrosoftFoundry extends AiProviderCredentialsCustomHeaders { deployments: { deploymentName: string; targetUri: string; apiKey: string; }[]; } interface AiProviderCredentialsCustom { identifier: string; key: string; } interface AiProviderConfig { actionRules?: AiModel.AiProviderConfigActionRule[]; } interface AiProviderConfigActionRule { action?: 'pre_translate' | 'alignment' | 'qa_check'; availableAiModelIds?: string[]; } interface AddAiProviderRequest { name: string; type: ProviderType; credentials?: AiModel.AiProviderCredentialsBasic | AiModel.AiProviderCredentialsAzureOpenAi | AiProviderCredentialsGoogleGemini | AiProviderCredentialsWatsonx | AiProviderCredentialsMicrosoftFoundry | AiProviderCredentialsCustom; config?: AiModel.AiProviderConfig; isEnabled?: boolean; useSystemCredentials?: boolean; } interface AiProviderModelResponse { id: string; provider: string | null; providerName: string | null; providerId: number | null; contextWindow: number | null; maxOutputTokens: number | null; supportsStreaming: boolean | null; supportsFunctionCalling: boolean | null; supportsJsonMode: boolean | null; supportsJsonSchema: boolean | null; supportsVision: boolean | null; isCompatibleWithAiLimit: boolean; } interface AiSupportedProviderModelResponse { providerId: number | null; providerType: string; providerName: string; id: string; displayName: string; supportReasoning: boolean; intelligence: number; speed: number; price: { input: number; output: number; }; modalities: { input: { text: boolean; image: boolean; audio: boolean; }; output: { text: boolean; image: boolean; audio: boolean; }; }; contextWindow: number; maxOutputTokens: number; knowledgeCutoff: string | null; releaseDate: string | null; features: { streaming: boolean; structuredOutput: boolean; functionCalling: boolean; }; } interface ListSupportedProviderModelsOptions extends PaginationOptions { providerType?: ProviderType; enabled?: boolean; orderBy?: string; } interface AiProviderProxyResponseData { data: object; } interface OtherChatCompletionRequest { stream?: boolean; [key: string]: any; } interface GoogleGeminiChatCompletionRequest extends OtherChatCompletionRequest { model: string; } type AiReport = AiReportTokenUsage | AiReportCostsByUsers; interface AiReportTokenUsage { type: 'tokens-usage-raw-data'; schema: AiReportGeneralSchema; } interface AiReportCostsByUsers { type: 'costs-by-users'; schema: AiReportGeneralSchema; } interface AiReportGeneralSchema { dateFrom: string; dateTo: string; format?: 'json' | 'csv'; projectIds?: number[]; promptIds?: number[]; userIds?: number[]; } interface AiSettings { assistActionAiPromptId: number; showSuggestion: boolean; shortcuts: { name: string; prompt: string; enabled: boolean; }[]; preTranslationAiPromptId: number; editorSuggestionAiPromptId: number; /** * Enterprise only */ alignmentActionAiPromptId?: number | null; qaCheckActionAiPromptId: number | null; contextReviewAiPromptId: number | null; /** in USD; `null` means no limit */ dailyCostLimit: number | null; /** in USD; `null` means no limit */ monthlyCostLimit: number | null; /** in USD; `null` means no limit */ userDailyCostLimit: number | null; /** in USD; `null` means no limit */ userMonthlyCostLimit: number | null; isLimitingActive: boolean; perUserOverrides: AiUserCostLimit[]; } interface AiUserCostLimit { userId: number; costLimitMode: 'custom' | 'blocked' | 'unlimited'; dailyCostLimit: number | null; monthlyCostLimit: number | null; createdAt: string; updatedAt: string; } interface ProjectAiSettings { editorSuggestionAiPromptId: number; /** * Enterprise only */ alignmentActionAiPromptId?: number | null; qaCheckActionAiPromptId: number | null; contextReviewAiPromptId: number | null; } interface AiFileTranslationRequest { storageId: number; targetLanguageId: string; sourceLanguageId?: string; type?: string; parserVersion?: number; tmIds?: number[]; glossaryIds?: number[]; styleGuideIds?: number[]; aiPromptId?: number; aiProviderId?: number; aiModelId?: string; instructions?: string[]; attachmentIds?: number[]; } interface AiFileTranslationAttribute { stage: string; error: { stage: string; message: string; } | null; downloadName: string | null; sourceLanguageId: string | null; targetLanguageId: string; originalFileName: string; detectedType: string | null; parserVersion: number | null; } interface AiTranslateStringsRequest { strings: string[]; targetLanguageId: string; sourceLanguageId?: string; tmIds?: number[]; glossaryIds?: number[]; styleGuideIds?: number[]; aiPromptId?: number; aiProviderId?: number; aiModelId?: string; instructions?: string[]; attachmentIds?: number[]; } interface AiTranslateStringsResponse { sourceLanguageId: string; targetLanguageId: string; translations: string[]; } interface AiRequestLog { id: number; requestId: string; createdAt: string; status: 'pending' | 'success' | 'error' | 'timeout'; httpStatus: number | null; model: string; sourceAction: string; promptAction: string | null; systemCredentials: boolean; isAutoTriggered: boolean; durationMs: number | null; inputTokens: number | null; outputTokens: number | null; totalCost: number | null; userId: number | null; projectId: number | null; promptId: number | null; aiProviderId: number; tokenName: string | null; oauthClientId: string | null; oauthClientName: string | null; ip: string | null; userAgent: string | null; error: string | null; } interface ListAiRequestLogsOptions extends PaginationOptions { requestId?: string; projectId?: number; userId?: number; aiProviderId?: number; model?: string; sourceAction?: string; promptAction?: string; statuses?: string; systemCredentials?: boolean; isAutoTriggered?: boolean; tokenName?: string; oauthClientId?: string; createdAfter?: string; createdBefore?: string; } interface ExportAiRequestLogsRequest { format?: 'csv'; requestId?: string; projectId?: number; userId?: number; aiProviderId?: number; model?: string; sourceAction?: string; promptAction?: string; statuses?: AiRequestLog['status'][]; tokenName?: string; oauthClientId?: string; systemCredentials?: boolean; isAutoTriggered?: boolean; createdAfter?: string; createdBefore?: string; } interface AiRequestLogsExportAttributes { format: 'csv'; filters: PlainObject; } interface AiUsageMember { user: { id: number; username: string; fullName: string; avatarUrl: string; }; /** in USD; `null` means no limit, `0` means AI usage is blocked for the user */ dailyCostLimit: number | null; dailyCostSpent: number; dailyResetAt: string; /** in USD; `null` means no limit, `0` means AI usage is blocked for the user */ monthlyCostLimit: number | null; monthlyCostSpent: number; monthlyResetAt: string; } interface ListAiUsageMembersOptions extends PaginationOptions { userIds?: number[]; orderBy?: string; } type Action = 'pre_translate' | 'alignment' | 'qa_check'; type ProviderType = 'open_ai' | 'azure_open_ai' | 'google_gemini' | 'google_gemini_ai_studio' | 'mistral_ai' | 'anthropic' | 'custom_ai' | 'x_ai' | 'deepseek' | 'watsonx' | 'microsoft_foundry' | 'crowdin_ai'; }