UNPKG

@crowdin/crowdin-api-client

Version:
727 lines (726 loc) 33.4 kB
import { CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, PlainObject, ResponseList, ResponseObject, Status } from '../core'; export declare class Ai extends CrowdinApi { /** * @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<ResponseList<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<void>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<Status<AiModel.FineTuningDataset>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningDataset>>>; /** * @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<ResponseList<AiModel.PromptFineTuningEvent>>; /** * @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<ResponseList<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<DownloadLink>>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<ResponseList<AiModel.AiPromptResponse>>; /** * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.post */ addAiOrganizationPrompt(request: AiModel.AddAiPromptRequest): Promise<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<ResponseObject<Status<AiModel.AiPromptCompletionAttribute>>>; /** * @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<ResponseObject<Status<AiModel.AiPromptCompletionAttribute>>>; /** * @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<void>; /** * @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<ResponseObject<DownloadLink>>; /** * @param aiPromptId ai Prompt identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.get */ getAiOrganizationPrompt(aiPromptId: number): Promise<ResponseObject<AiModel.AiPromptResponse>>; /** * @param aiPromptId ai Prompt identifier * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.prompts.delete */ deleteAiOrganizationPrompt(aiPromptId: number): Promise<void>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.getMany */ listAiOrganizationProviders(options?: PaginationOptions): Promise<ResponseList<AiModel.AiProviderResponse>>; /** * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.post */ addAiOrganizationProvider(request: AiModel.AddAiProviderRequest): Promise<ResponseObject<AiModel.AiProviderResponse>>; /** * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.get */ getAiOrganizationProvider(aiProviderId: number): Promise<ResponseObject<AiModel.AiProviderResponse>>; /** * @param aiProviderId ai Provider identifier. * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.providers.delete */ deleteAiOrganizationProvider(aiProviderId: number): Promise<void>; /** * @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<ResponseObject<AiModel.AiProviderResponse>>; /** * @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<ResponseList<AiModel.AiProviderModelResponse>>; /** * @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<ResponseObject<AiModel.AiProviderProxyResponseData>>; /** * @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<ResponseObject<Status<AiModel.AiReport>>>; /** * @param aiReportId report identifier * @see https://support.crowdin.com/developer/enterprise/api/v2/#tag/AI/operation/api.ai.reports.get */ checkAiOrganizationReportStatus(aiReportId: string): Promise<ResponseObject<Status<AiModel.AiReport>>>; /** * @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<ResponseObject<DownloadLink>>; /** * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.settings.get */ getAiOrganizationSettings(): Promise<ResponseObject<AiModel.AiSettings>>; /** * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.ai.settings.patch */ editAiOrganizationSettings(request: PatchRequest[]): Promise<ResponseObject<AiModel.AiSettings>>; /** * @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<ResponseList<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<void>; /** * @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<ResponseObject<AiModel.CustomPlaceholder>>; /** * @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<ResponseObject<Status<AiModel.FineTuningDataset>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningDataset>>>; /** * @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<ResponseList<AiModel.PromptFineTuningEvent>>; /** * @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<ResponseList<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<Status<AiModel.FineTuningJob>>>; /** * @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<ResponseObject<DownloadLink>>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<ResponseList<AiModel.AiPromptResponse>>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<ResponseObject<Status<AiModel.AiPromptCompletionAttribute>>>; /** * @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<ResponseObject<Status<AiModel.AiPromptCompletionAttribute>>>; /** * @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<void>; /** * @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<ResponseObject<DownloadLink>>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<void>; /** * @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<ResponseObject<AiModel.AiPromptResponse>>; /** * @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<ResponseList<AiModel.AiProviderResponse>>; /** * @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<ResponseObject<AiModel.AiProviderResponse>>; /** * @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<ResponseObject<AiModel.AiProviderResponse>>; /** * @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<void>; /** * @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<ResponseObject<AiModel.AiProviderResponse>>; /** * @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<ResponseList<AiModel.AiProviderModelResponse>>; /** * @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<ResponseObject<AiModel.AiProviderProxyResponseData>>; /** * @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<ResponseObject<Status<AiModel.AiReport>>>; /** * @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<ResponseObject<Status<AiModel.AiReport>>>; /** * @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<ResponseObject<DownloadLink>>; /** * @param userId user Identifier * @see https://developer.crowdin.com/api/v2/#operation/api.users.ai.settings.get */ getAiUsertSettings(userId: number): Promise<ResponseObject<AiModel.AiSettings>>; /** * @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<ResponseObject<AiModel.AiSettings>>; } 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 FineTuningDataset { projectIds: number[]; tmIds: number[]; purpose: 'training' | 'validation'; dateFrom: string; dateTo: string; maxFileSize: number; minExamplesCount: number; maxExamplesCount: number; } 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<GenerateFineTuningDataset, 'purpose'>; validationOptions?: Omit<GenerateFineTuningDataset, 'purpose'>; } interface FineTuningJob { dryRun: boolean; aiPromptId: number; hyperparameters: { batchSize: number; learningRateMultiplier: number; nEpochs: number; }; trainingOptions: Omit<GenerateFineTuningDataset, 'purpose'>; validationOptions: Omit<GenerateFineTuningDataset, 'purpose'>; 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; fullValidationLoss: number; }; 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; aiModelId: string; isEnabled: boolean; enabledProjectIds: number[]; config: AiModel.AiPromptConfigBasicPreTranslate | AiModel.AiPromptConfigBasicAssistAction | AiModel.AiPromptConfigBasicAligmentAction | AiModel.AiPromptConfigAdvanced | AiModel.AiPromptConfigExternal; promptPreview: string; isFineTuningAvailable: boolean; createdAt: string; updatedAt: string; } interface AiPromptConfigBasicOtherLanguageTranslations { isEnabled?: boolean; languageIds?: string[]; } interface AiPromptConfigBasicPreTranslate { mode: 'basic'; /** * @deprecated */ companyDescription?: string; /** * @deprecated */ projectDescription?: string; /** * @deprecated */ audienceDescription?: string; customPlaceholders?: string[]; otherLanguageTranslations?: AiModel.AiPromptConfigBasicOtherLanguageTranslations; glossaryTerms?: boolean; tmSuggestions?: boolean; /** * @deprecated */ fileContent?: boolean; fileContext?: boolean; screenshots?: boolean; publicProjectDescription?: boolean; siblingsStrings?: boolean; } interface AiPromptConfigBasicAssistAction { mode: 'basic'; /** * @deprecated */ companyDescription?: string; /** * @deprecated */ projectDescription?: string; /** * @deprecated */ audienceDescription?: string; otherLanguageTranslations?: AiModel.AiPromptConfigBasicOtherLanguageTranslations; glossaryTerms?: boolean; tmSuggestions?: boolean; fileContext?: boolean; screenshots?: boolean; publicProjectDescription?: boolean; siblingsStrings?: boolean; filteredStrings?: boolean; } interface AiPromptConfigBasicAligmentAction { mode: 'basic'; customPlaceholders?: string[]; publicProjectDescription?: boolean; } interface AiPromptConfigAdvanced { mode: 'advanced'; screenshots?: boolean; prompt: string; otherLanguageTranslations?: AiModel.AiPromptConfigBasicOtherLanguageTranslations; } interface AiPromptConfigExternal { mode: 'external'; identifier: string; key: string; options?: any; } interface AddAiPromptRequest { name: string; action: Action; aiProviderId?: number; aiModelId?: string; isEnabled?: boolean; enabledProjectIds?: number[]; config: AiModel.AiPromptConfigBasicPreTranslate | AiModel.AiPromptConfigBasicAssistAction | AiModel.AiPromptConfigBasicAligmentAction | AiModel.AiPromptConfigAdvanced | AiPromptConfigExternal; } interface GenerateAiPromptCompletionRequest { resources: AiModel.AiPromptResourceWithPreTranslate | AiModel.AiPromptResourceWithAssist | AiModel.AiPromptResourceWithAlignment | 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 AiPromptResourceWithAssist { projectId: number; sourceLanguageId?: string; targetLanguageId?: string; stringIds?: number[]; filteredStringsIds?: 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 | AiProviderCredentialsCustom; config: AiModel.AiProviderConfig; isEnabled: boolean; useSystemCredentials: boolean; createdAt: string; updatedAt: string; promptsCount: string; } interface AiProviderCredentialsBasic { apiKey: string; } interface AiProviderCredentialsAzureOpenAi extends AiProviderCredentialsBasic { resourceName: string; deploymentName: string; apiVersion: string; } interface AiProviderCredentialsGoogleGemini { project: string; region: string; serviceAccountKey: string; } interface AiProviderCredentialsWatsonx { apiKey: string; projectId: string; region: string; } interface AiProviderCredentialsCustom { identifier: string; key: string; } interface AiProviderConfig { actionRules?: AiModel.AiProviderConfigActionRule[]; } interface AiProviderConfigActionRule { action?: 'pre_translate' | 'assist'; availableAiModelIds?: string[]; } interface AddAiProviderRequest { name: string; type: ProviderType; credentials?: AiModel.AiProviderCredentialsBasic | AiModel.AiProviderCredentialsAzureOpenAi | AiProviderCredentialsGoogleGemini | AiProviderCredentialsWatsonx | AiProviderCredentialsCustom; config?: AiModel.AiProviderConfig; isEnabled?: boolean; useSystemCredentials?: boolean; } interface AiProviderModelResponse { id: string; } interface AiProviderProxyResponseData { data: object; } interface OtherChatCompletionRequest { stream?: boolean; [key: string]: any; } interface GoogleGeminiChatCompletionRequest extends OtherChatCompletionRequest { model: string; } type AiReport = AiReportTokenUsage; interface AiReportTokenUsage { type: 'tokens-usage-raw-data'; 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; }[]; } type Action = 'pre_translate' | 'assist'; type ProviderType = 'open_ai' | 'azure_open_ai' | 'google_gemini' | 'mistral_ai' | 'anthropic' | 'custom_ai' | 'x_ai' | 'deepseek' | 'watsonx'; }