@crowdin/crowdin-api-client
Version:
JavaScript library for Crowdin API
320 lines (319 loc) • 13.2 kB
TypeScript
import { CrowdinApi, DownloadLink, PaginationOptions, PatchRequest, ResponseList, ResponseObject, Status } from '../core';
/**
* Glossaries help to explain some specific terms or the ones often used in the project so that they can be properly and consistently translated.
*
* Use API to manage glossaries or specific terms.
* Glossary export and import are asynchronous operations and shall be completed with sequence of API methods.
*/
export declare class Glossaries extends CrowdinApi {
/**
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.getMany
*/
listGlossaries(options?: GlossariesModel.ListGlossariesOptions): Promise<ResponseList<GlossariesModel.Glossary>>;
/**
* @param groupId group identifier
* @param limit maximum number of items to retrieve (default 25)
* @param offset starting offset in the collection (default 0)
* @deprecated optional parameters should be passed through an object
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.getMany
*/
listGlossaries(groupId?: number, limit?: number, offset?: number): Promise<ResponseList<GlossariesModel.Glossary>>;
/**
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.post
*/
addGlossary(request: GlossariesModel.CreateGlossaryRequest): Promise<ResponseObject<GlossariesModel.Glossary>>;
/**
* @param glossaryId glossary identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.get
*/
getGlossary(glossaryId: number): Promise<ResponseObject<GlossariesModel.Glossary>>;
/**
* @param glossaryId glossary identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.delete
*/
deleteGlossary(glossaryId: number): Promise<void>;
/**
* @param glossaryId glossary identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.patch
*/
editGlossary(glossaryId: number, request: PatchRequest[]): Promise<ResponseObject<GlossariesModel.Glossary>>;
/**
* @param glossaryId glossary identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.exports.post
*/
exportGlossary(glossaryId: number, request: GlossariesModel.ExportGlossaryRequest): Promise<ResponseObject<Status<GlossariesModel.GlossaryExportStatusAttribute>>>;
/**
* @param glossaryId glossary identifier
* @param exportId export identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.exports.get
*/
checkGlossaryExportStatus(glossaryId: number, exportId: string): Promise<ResponseObject<Status<GlossariesModel.GlossaryExportStatusAttribute>>>;
/**
* @param glossaryId glossary identifier
* @param exportId export identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.exports.download.download
*/
downloadGlossary(glossaryId: number, exportId: string): Promise<ResponseObject<DownloadLink>>;
/**
* @param glossaryId glossary identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.imports.post
*/
importGlossaryFile(glossaryId: number, request: GlossariesModel.GlossaryFile): Promise<ResponseObject<Status<GlossariesModel.GlossaryImportStatusAttribute>>>;
/**
* @param glossaryId glossary identifier
* @param importId import identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.imports.get
*/
checkGlossaryImportStatus(glossaryId: number, importId: string): Promise<ResponseObject<Status<GlossariesModel.GlossaryImportStatusAttribute>>>;
/**
* @param glossaryId glossary identifier
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.getMany
*/
listTerms(glossaryId: number, options?: GlossariesModel.ListTermsOptions): Promise<ResponseList<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param userId list user glossaries
* @param limit maximum number of items to retrieve (default 25)
* @param offset starting offset in the collection (default 0)
* @param languageId term language identifier
* @param translationOfTermId filter terms by termId
* @param conceptId filter terms by conceptId
* @deprecated optional parameters should be passed through an object
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.getMany
*/
listTerms(glossaryId: number, userId?: number, limit?: number, offset?: number, languageId?: string, translationOfTermId?: number, conceptId?: number): Promise<ResponseList<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.post
*/
addTerm(glossaryId: number, request: GlossariesModel.CreateTermRequest): Promise<ResponseObject<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.deleteMany
*/
clearGlossary(glossaryId: number, options?: GlossariesModel.ClearGlossaryOptions): Promise<ResponseObject<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param languageId languageId identifier
* @param translationOfTermId term translation identifier
* @param conceptId concept identifier
* @deprecated optional parameters should be passed through an object
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.deleteMany
*/
clearGlossary(glossaryId: number, languageId?: number, translationOfTermId?: number, conceptId?: number): Promise<ResponseObject<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param termId term identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.get
*/
getTerm(glossaryId: number, termId: number): Promise<ResponseObject<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param termId term identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.delete
*/
deleteTerm(glossaryId: number, termId: number): Promise<void>;
/**
* @param glossaryId glossary identifier
* @param termId term identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.terms.patch
*/
editTerm(glossaryId: number, termId: number, request: PatchRequest[]): Promise<ResponseObject<GlossariesModel.Term>>;
/**
* @param glossaryId glossary identifier
* @param options optional parameters for the request
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.concepts.getMany
*/
listConcepts(glossaryId: number, options?: {
orderBy?: string;
} & PaginationOptions): Promise<ResponseList<GlossariesModel.Concept>>;
/**
* @param glossaryId glossary identifier
* @param conceptId concept identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.concepts.get
*/
getConcept(glossaryId: number, conceptId: number): Promise<ResponseObject<GlossariesModel.Concept>>;
/**
* @param glossaryId glossary identifier
* @param conceptId concept identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.concepts.put
*/
updateConcept(glossaryId: number, conceptId: number, request: GlossariesModel.UpdateConceptRequest): Promise<ResponseObject<GlossariesModel.Concept>>;
/**
* @param glossaryId glossary identifier
* @param conceptId concept identifier
* @see https://developer.crowdin.com/api/v2/#operation/api.glossaries.concepts.delete
*/
deleteConcept(glossaryId: number, conceptId: number): Promise<void>;
/**
* @param projectId project identifier
* @param request request body
* @see https://developer.crowdin.com/api/v2/#operation/api.projects.glossaries.concordance.post
*/
concordanceSearch(projectId: number, request: GlossariesModel.ConcordanceSearchRequest): Promise<ResponseList<GlossariesModel.ConcordanceSearchResponse>>;
}
export declare namespace GlossariesModel {
interface Glossary {
id: number;
name: string;
groupId: number;
userId: number;
terms: number;
languageId: string;
languageIds: string[];
defaultProjectIds: number[];
projectIds: number[];
webUrl: string;
createdAt: string;
}
interface CreateGlossaryRequest {
name: string;
languageId: string;
groupId?: number;
}
type ExportField = 'term' | 'description' | 'partOfSpeech' | 'type' | 'status' | 'gender' | 'note' | 'url' | 'conceptDefinition' | 'conceptSubject' | 'conceptNote' | 'conceptUrl' | 'conceptFigure';
interface ExportGlossaryRequest {
format?: GlossaryFormat;
exportFields?: ExportField[];
}
interface GlossaryExportStatusAttribute {
format: string;
exportFields: ExportField[];
}
interface GlossaryImportStatusAttribute {
storageId: number;
scheme: unknown;
firstLineContainsHeader: boolean;
}
interface GlossaryFile {
storageId: number;
scheme?: GlossaryFileScheme;
firstLineContainsHeader?: boolean;
}
interface ListTermsOptions extends PaginationOptions {
userId?: number;
languageId?: string;
conceptId?: number;
orderBy?: string;
croql?: string;
/**
* @deprecated
*/
translationOfTermId?: number;
}
interface Term {
id: number;
userId: number;
glossaryId: number;
languageId: string;
text: string;
description: string;
partOfSpeech: PartOfSpeech;
status: Status;
type: Type;
gender: Gender;
note: string;
url: string;
conceptId: number;
lemma: string;
createdAt: string;
updatedAt: string;
}
interface CreateTermRequest {
languageId: string;
text: string;
description?: string;
partOfSpeech?: PartOfSpeech;
status?: Status;
type?: Type;
gender?: Gender;
note?: string;
url?: string;
conceptId?: number;
/**
* @deprecated
*/
translationOfTermId?: number;
}
interface ConcordanceSearchRequest extends PaginationOptions {
sourceLanguageId: string;
targetLanguageId: string;
expressions: string[];
/**
* @deprecated
*/
expression?: string;
}
interface ConcordanceSearchResponse {
glossary: Glossary;
concept: Concept;
sourceTerms: Term[];
targetTerms: Term[];
}
type Status = 'preferred' | 'admitted' | 'not recommended' | 'obsolete';
type Type = 'full form' | 'acronym' | 'abbreviation' | 'short form' | 'phrase' | 'variant';
type Gender = 'masculine' | 'feminine' | 'neuter' | 'other';
type GlossaryFormat = 'tbx' | 'tbx_v3' | 'csv' | 'xlsx';
interface GlossaryFileScheme {
[key: string]: number;
}
type PartOfSpeech = 'adjective' | 'adposition' | 'adverb' | 'auxiliary' | 'coordinating conjunction' | 'determiner' | 'interjection' | 'noun' | 'numeral' | 'particle' | 'pronoun' | 'proper noun' | 'subordinating conjunction' | 'verb' | 'other';
interface ListGlossariesOptions extends PaginationOptions {
groupId?: number;
userId?: number;
orderBy?: string;
}
interface ClearGlossaryOptions {
languageId?: number;
/**
* @deprecated
*/
translationOfTermId?: number;
conceptId?: number;
}
interface Concept {
id: number;
userId: number;
glossaryId: number;
subject: string;
definition: string;
translatable: boolean;
note: string;
url: string;
figure: string;
languagesDetails: LanguageDetails[];
createdAt: string;
updatedAt: string;
}
interface LanguageDetails {
languageId: string;
userId: number;
definition: string;
note: string;
createdAt: string;
updatedAt: string;
}
interface UpdateConceptRequest {
subject?: string;
definition?: string;
translatable?: boolean;
note?: string;
url?: string;
figure?: string;
languagesDetails?: {
languageId: string;
definition: string;
note?: string;
}[];
}
}