@translated/lara
Version:
Official Lara SDK for JavaScript and Node.js
121 lines (120 loc) • 4.28 kB
TypeScript
import { AudioTranslator } from "./audioTranslator";
import type { AccessKey, AuthToken } from "./credentials";
import { Documents } from "./documents";
import { Glossaries } from "./glossaries";
import { ImageTranslator } from "./imageTranslator";
import { Memories } from "./memories";
import { type LaraClient } from "./net/lara";
import { Styleguides } from "./styleguides";
export type TranslatorOptions = {
serverUrl?: string;
connectionTimeoutMs?: number;
keepAlive?: boolean;
};
export interface NGMemoryMatch {
memory: string;
tuid?: string;
language: [string, string];
sentence: string;
translation: string;
score: number;
}
export interface NGGlossaryMatch {
glossary: string;
language: [string, string];
term: string;
translation: string;
}
export interface ProfanityDetectResult {
maskedText: string;
profanities: {
text: string;
startCharIndex: number;
endCharIndex: number;
score: number;
}[];
error?: string;
}
export interface ProfanitiesResult {
target: ProfanityDetectResult | ProfanityDetectResult[];
source?: ProfanityDetectResult | ProfanityDetectResult[];
}
export interface TextBlock {
readonly text: string;
readonly translatable?: boolean;
}
export type StyleguideChange = {
id?: string;
originalTranslation: string;
refinedTranslation: string;
explanation: string;
};
export type StyleguideResults<T extends string | string[] | TextBlock[]> = {
originalTranslation: T;
changes: StyleguideChange[];
};
export interface TextResult<T extends string | string[] | TextBlock[]> {
readonly contentType: string;
readonly sourceLanguage: string;
readonly translation: T;
readonly adaptedTo?: string[];
readonly glossaries?: string[];
readonly adaptedToMatches?: NGMemoryMatch[] | NGMemoryMatch[][];
readonly glossariesMatches?: NGGlossaryMatch[] | NGGlossaryMatch[][];
readonly profanities?: ProfanitiesResult;
readonly styleguideResults?: StyleguideResults<T>;
}
export type TranslateOptions = {
sourceHint?: string;
adaptTo?: string[];
instructions?: string[];
glossaries?: string[];
contentType?: string;
multiline?: boolean;
timeoutInMillis?: number;
priority?: "normal" | "background";
useCache?: boolean | "overwrite";
cacheTTLSeconds?: number;
noTrace?: boolean;
verbose?: boolean;
headers?: Record<string, string>;
style?: TranslationStyle;
reasoning?: boolean;
metadata?: string | Record<string, unknown>;
profanitiesDetect?: ProfanitiesDetect;
profanitiesHandling?: ProfanitiesHandling;
styleguideId?: string;
styleguideReasoning?: boolean;
styleguideExplanationLanguage?: string;
};
export type TranslationStyle = "faithful" | "fluid" | "creative";
export type ProfanitiesDetect = "target" | "source_target";
export type ProfanitiesHandling = "hide" | "avoid" | "detect";
export interface QualityEstimationResult {
score: number;
}
export interface DetectResult {
language: string;
contentType: string;
predictions: {
language: string;
confidence: number;
}[];
}
export declare class Translator {
protected readonly client: LaraClient;
readonly memories: Memories;
readonly documents: Documents;
readonly glossaries: Glossaries;
readonly styleguides: Styleguides;
readonly audio: AudioTranslator;
readonly images: ImageTranslator;
constructor(auth: AccessKey | AuthToken, options?: TranslatorOptions);
get version(): string;
getLanguages(): Promise<string[]>;
translate<T extends string | string[] | TextBlock[]>(text: T, source: string | null, target: string, options?: TranslateOptions, callback?: (partialResult: TextResult<T>) => void): Promise<TextResult<T>>;
detect(text: string | string[], hint?: string, passlist?: string[]): Promise<DetectResult>;
detectProfanities(text: string, language: string, contentType: string): Promise<ProfanityDetectResult>;
qualityEstimation(source: string, target: string, sentence: string | string[], translation: string | string[]): Promise<QualityEstimationResult | QualityEstimationResult[]>;
static getLoginUrl(serverUrl?: string): Promise<string>;
}