language-cloud-js-sdk
Version: 
Language Cloud javascript sdk
1,080 lines (1,061 loc) • 226 kB
TypeScript
import { AxiosInstance } from 'axios';
interface FieldsParams {
    /** A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
}
interface CommonParams {
    /**A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
    /** The identifiers of the resource folders. You can control the behavior by using the 'locationStrategy'. */
    location?: string[];
    /**Options:
     * - `location:` all the resources located strictly in the folders from the 'location' parameter (default);
     * - `lineage:` all the resources located in the folders specified in the 'location' parameter, as well as the subfolders;
     * - `bloodline:` all the resources located in the folders specified in the 'location' parameter, as well as the ancestor folders;
     * - `genealogy:` the resources located in the folders specified in the 'location' parameter together with subfolders and ancestors. */
    locationStrategy?: 'location' | 'lineage' | 'bloodline' | 'genealogy';
    /**The number of items that are skipped to reach the desired page.
     *
     * `Default 0`*/
    skip?: number;
    /**A comma separated list of fields used to sort the resources in the response. Each field can have a unary negative to imply descending sort order. */
    sort?: string;
    /**The number of items to include inside the page.
     *
     * `Default 100` */
    top?: number;
}
interface Folder {
    /**The folder identifier.*/
    id: string;
    /**The name of the folder.*/
    name: string;
    /**Indicates if the folder has a parent folder.*/
    hasParent: boolean | null;
    /**The hierarchical path. It consists of all the items of the path in reverse order, the parent of the current folder being the first in the list, and the root of the account being the last.*/
    path: FolderPath[];
}
interface FolderPath {
    /**The folder identifier.*/
    id: string;
    /**The name of the folder.*/
    name: string;
    /**The location identifier.*/
    location: string;
    /**Indicates if the folder has a parent folder.*/
    hasParent: boolean | null;
}
interface FolderListRequestParams {
    /** Filter folders by name. */
    name?: string;
    /** A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
}
interface FolderListResponse {
    itemCount: number;
    /** The Custom Field definition. */
    items: Folder[];
}
interface CustomField {
    /** Custom Field identifier. */
    id: string;
    /** Custom Field name. (Not available for List Projects, Get Project Template and List Project Templates endpoints) */
    name?: string;
    /** Custom Field friendly key. */
    key: string;
    /** The value of the custom property. A date will be serialised as an ISO_8601 string. */
    value: object;
}
interface CustomFieldDefinition {
    /** The identifier of the Custom Field Definition, generated by the service. */
    id: string;
    /** The display name of the Custom Field. */
    name: string;
    /** The key of the Custom Field, used for querying purposes. */
    key: string;
    /** The description of the Custom Field. */
    description: string;
    /** The value type supported by this Custom Field. */
    type: 'long' | 'double' | 'boolean' | 'date' | 'string' | 'checkbox' | 'longtext' | 'picklist' | 'multiSelectPicklist' | null;
    /** Possible values if the type selected is "picklist" or "multiSelectPicklist". */
    pickListOptions: string[];
    /** The value type supported by this Custom Field. */
    resourceType: 'project' | 'customer';
    /** The description of the Custom Field. */
    isReadOnly: boolean | null;
    /** Specifies a default value for this Custom Field. This is required if the "isReadOnly" field is True. */
    defaultValue: string;
    /** Specifies if this Custom Field is mandatory when creating a resource of the supported type. */
    isMandatory: boolean | null;
    /** Folder used for resource storage. */
    location: Folder;
}
interface CustomFieldResource {
    /**Custom Field friendly key.*/
    key: string;
    /**The value of the custom property. A date will be serialised as an ISO_8601 string.*/
    value: object;
}
interface CustomFieldRequest {
    /**Custom Field friendly key.*/
    key: string;
    /**The value of the custom field. A date will be serialized as a ISO_8601 string. For read only custom fields (`isReadOnly`), it must be set exactly as the `defaultValue` from custom field definition.*/
    value?: string;
}
interface CustomFieldDefinitionListRequestParams {
    /**A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
    /**The identifiers of the resource folders. You can control the behavior by using the 'locationStrategy' */
    location?: string[];
    /**Options:
     * - `location:` all the resources located strictly in the folders from the 'location' parameter (default);
     * - `lineage:` all the resources located in the folders specified in the 'location' parameter, as well as the subfolders;
     * - `bloodline:` all the resources located in the folders specified in the 'location' parameter, as well as the ancestor folders;
     * - `genealogy:` the resources located in the folders specified in the 'location' parameter together with subfolders and ancestors. */
    locationStrategy?: 'location' | 'lineage' | 'bloodline' | 'genealogy';
    /**The number of items that are skipped to reach the desired page.
     *
     * `default 0`*/
    skip?: number;
    /**A comma separated list of fields used to sort the resources in the response. Each field can have a unary negative to imply descending sort order. */
    sort?: string;
    /**The number of items to include inside the page.
     *
     * `default 100` */
    top?: number;
}
interface CustomFieldDefinitionListResponse {
    itemCount: number;
    /** The Custom Field definition. */
    items: CustomFieldDefinition[];
}
declare class CustomFieldDefinitionsService {
    private readonly client;
    constructor(client: LanguageCloudClient);
    /** Retrieves a list of all the custom field definitions. */
    getCustomFieldDefinitions: (params?: CustomFieldDefinitionListRequestParams) => Promise<CustomFieldDefinitionListResponse>;
    /** Retrieves a Custom Field by identifier. */
    getCustomFieldDefinition: (customFieldDefinitionId: string, params?: FieldsParams) => Promise<CustomFieldDefinition>;
}
interface Language {
    /**Language code. ex: "en-US", "de-DE".*/
    languageCode: string;
    /**Human readable name.*/
    englishName: string;
    direction: string;
    parentLanguageCode: string;
    defaultSpecificLanguageCode: string;
    isNeutral: boolean | null;
}
interface LanguageListRequestParams {
    /** A comma separated list of fields to include in the response.
     * Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname".
     * When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned.
     * The id property is always returned. */
    fields?: string;
    /** Filter by language codes. */
    languageCodes?: string[];
    /** Filter by type.
     *
     * `Example: specific`
     */
    type?: 'all' | 'specific' | 'neutral';
}
interface LanguageListResponse {
    itemCount: number;
    /** The language object. */
    items?: Language[];
}
interface SourceLanguageRequest {
    /** The language code. */
    languageCode: string;
}
interface TargetLanguageRequest {
    /** The language code. */
    languageCode: string;
}
declare class LanguageService {
    private readonly client;
    constructor(client: LanguageCloudClient);
    /** Retrieves a list of all the languages.
     *
     * The supported values for language `type` filter are: "all", "specific" or "neutral".
     * The "neutral" languages are the generic languages, e.g.: en -> English.
     *
     * The "specific" languages are the sub-languages, e.g.: en-150 -> English (Europe), en-us -> English (United States).
     */
    getLanguages: (params?: LanguageListRequestParams) => Promise<LanguageListResponse>;
}
interface FileProcessingConfiguration {
    /**The file processing configuration identifier.*/
    id: string;
    /**The file processing configuration name.*/
    name?: string;
    /**Folder used for resource storage.*/
    location: Folder;
}
interface ConfigurationResourceRequest {
    /** Configuration resource identifier. */
    id: string;
    /** `Default: copy`
     * - "copy": A copy of the resource will be used for the project execution. This is the default strategy.
     * - "use": The actual resource will be used for the project execution.
     */
    strategy?: 'copy' | 'use';
}
interface User {
    /** User account identifier.*/
    id: string;
    /**The user's email address. Retrieved only for RWS ID (formerly SDL ID) users (not service users) that the authenticated entity is authorized to read.*/
    email: string;
    /**The user's first name. Retrieved only for RWS ID (formerly SDL ID) users (not service users) that the authenticated entity is authorized to read.*/
    firstName: string;
    /**The user's last name. Retrieved only for RWS ID (formerly SDL ID) users (not service users) that the authenticated entity is authorized to read.*/
    lastName: string;
    /**This shows if the authenticated entity has access to read the details of the user or not. If true, then the 'anonymizedUserName' should be retrieved.*/
    anonymized: boolean | null;
    /**Retrieved if the authenticated entity does not have access to read the User.*/
    anonymizedUserName: string;
    /** Folder used for resource storage */
    location: Folder;
    /** Group of Users. */
    groups?: Array<Group>;
}
interface UserListResponse {
    itemCount: number;
    items: Array<User>;
}
interface Group {
    /**The group identifier.*/
    id: string;
    /**The group name.*/
    name: string;
    /**The group description.*/
    description: string;
    /**Folder used for resource storage.*/
    location: Folder;
    /**User in the account. */
    users: User[];
}
interface GroupListRequestParams {
    /**A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
    /**The identifiers of the resource folders. You can control the behavior by using the 'locationStrategy' */
    location?: string[];
    /**Options:
     * - `location:` all the resources located strictly in the folders from the 'location' parameter (default);
     * - `lineage:` all the resources located in the folders specified in the 'location' parameter, as well as the subfolders;
     * - `bloodline:` all the resources located in the folders specified in the 'location' parameter, as well as the ancestor folders;
     * - `genealogy:` the resources located in the folders specified in the 'location' parameter together with subfolders and ancestors. */
    locationStrategy?: 'location' | 'lineage' | 'bloodline' | 'genealogy';
    /**The number of items that are skipped to reach the desired page.
     *
     * `>= 0`
     *
     * `default 0`*/
    skip?: number;
    /**A comma separated list of fields used to sort the resources in the response. Each field can have a unary negative to imply descending sort order. */
    sort?: string;
    /**The number of items to include inside the page.
     *
     * `>= 1` `<= 100`
     *
     * `default 100` */
    top?: number;
}
interface GroupListResponse {
    itemCount: number;
    /** The Custom Field definition. */
    items: Group[];
}
interface LanguageDirection$1 {
    /**
     * The language direction identifier.
     */
    id: string;
    sourceLanguage: Language;
    targetLanguage: Language;
}
interface LanguageDirectionItem {
    /**The language direction identifier.*/
    id: string;
}
interface LanguageDirectionRequest {
    /**Source Language Request*/
    sourceLanguage: SourceLanguageRequest;
    /**Target Language Request*/
    targetLanguage: TargetLanguageRequest;
}
interface PricingModel {
    /**The pricing model identifier.*/
    id: string;
    /**The name of the Pricing Model.*/
    name: string;
    /**The description of the Pricing Model.*/
    description?: string;
    /**The currency code (ISO 4217).*/
    currencyCode?: string;
    /**Folder used for resource storage.*/
    location: Folder;
    /**The pricing model costs for each language direction.*/
    languageDirectionPricing: LanguagePrices[];
    /**Additional costs for the pricing model.*/
    additionalCosts: AdditionalCost[];
}
type LanguagePrices = {
    /**The source language code. For example: "en-US", "de-DE".*/
    sourceLanguage: string;
    /**The target language code. For example: "en-US", "de-DE".*/
    targetLanguage: string;
    /**The price of context matches.*/
    contextMatch: number;
    /**The price of exact matches.*/
    exactMatch: number;
    /**The price of new matches.*/
    new: number;
    /**The price of PerfectMatches.*/
    perfectMatch: number;
    /**The price of repetition matches.*/
    repetition: number;
    /**The price of machine translation matches.*/
    machineTranslation: number;
    /**The pricing unit. Allowed values: words, characters, fuzzyMatches, array<Fuzzy Match>*/
    pricingUnit: 'words' | 'characters';
    fuzzyMatches: FuzzyMatch[];
    /**Additional costs for the pricing model.*/
    additionalCosts: AdditionalCost[];
};
type AdditionalCost = {
    /**The name of the additional cost.*/
    name: string;
    /**The type of the additional cost.*/
    type: 'volume' | 'hourly' | 'percentage' | 'perPage' | 'conditional';
    /**The number of the additional cost.*/
    index?: number;
    /**The cost of a unit.*/
    costPerUnit?: number;
    /**The number of units for which a cost is applied.*/
    unitCount?: number;
    /**The unit type of the 'volume' cost, used as reference for the unit cost.*/
    volumeUnitType?: 'words' | 'characters';
    /**Only for the Conditional type.*/
    conditionalCostType?: 'absolute' | 'relative' | 'percentage';
    /**Only for the Conditional type.*/
    costOperator?: 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual';
    /**Only for the Conditional type.*/
    costVariable?: 'wordCount' | 'runningTotal';
    /**Operand of the Conditional type cost.*/
    operand?: number;
    /**Array of task type identifiers where this additional cost is applied.*/
    serviceTypes?: string[];
};
interface FuzzyMatch {
    /**Fuzzy match price for the range expressed in the category field.*/
    price: number;
    /**Fuzzy match category range.*/
    category: {
        /**Minimum matching value of this range.*/
        minimumMatchValue: number | null;
        /**Maximum matching value of this range.*/
        maximumMatchValue: number | null;
    };
}
interface PricingModelsListRequestParams {
    /**A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
    /**The identifiers of the resource folders. You can control the behavior by using the 'locationStrategy' */
    location?: string[];
    /**Options:
     * - `location:` all the resources located strictly in the folders from the 'location' parameter (default);
     * - `lineage:` all the resources located in the folders specified in the 'location' parameter, as well as the subfolders;
     * - `bloodline:` all the resources located in the folders specified in the 'location' parameter, as well as the ancestor folders;
     * - `genealogy:` the resources located in the folders specified in the 'location' parameter together with subfolders and ancestors.
     */
    locationStrategy?: 'location' | 'lineage' | 'bloodline' | 'genealogy';
    /**The number of items that are skipped to reach the desired page.
     *
     * `>= 0`
     *
     * `default 0`
     */
    skip?: number;
    /**A comma separated list of fields used to sort the resources in the response. Each field can have a unary negative to imply descending sort order. */
    sort?: string;
    /**The number of items to include inside the page.
     *
     * `>= 1` `<= 100`
     *
     * `default 100`
     */
    top?: number;
}
interface PricingModelsListResponse {
    itemCount: number;
    items: PricingModel[];
}
interface ProjectManagerResponse {
    /**
     * Type of the project manager.
     * Possible values: user, group
     */
    type: 'user' | 'group';
    /**
     * User in the account
     */
    user?: User;
    /**
     * Group of Users
     */
    group?: Group;
}
interface ProjectManagerRequest {
    /**
     * Depending on the type, User identifier or Group identifier.
     */
    id: string;
    /**
     * Type of the project manager.
     * `Possible values: user, group`
     */
    type: 'user' | 'group';
}
interface ProjectPlanUpdateRequest {
    /** A project plan task configuration request. Used to update a task that will be created in the future. */
    taskConfigurations: ProjectPlanTaskConfigurationRequest[];
}
interface ProjectPlanTaskConfigurationRequest {
    /** An object with identifier. */
    taskTemplate: {
        id: string;
    };
    /** Specifies if the task will be skipped. If you want to skip all the target languages for the given task, set the scope as "global". */
    isSkipped: boolean;
    /** Specifies the list of assignees for the future task.
     *
     * When the 'isSkipped' field is set to 'true', an empty list of assignees should be specified.
     *
     * Total assignee count is limited. See more at {@link https://docs.rws.com/791595/743481/trados-enterprise---accelerate/assigning-users-and-groups-to-workflow-tasks | Assigning users and groups to workflow tasks} point 5e. */
    assignees: ProjectPlanTaskAssigneeRequest[];
    scope: WorkflowTaskConfigurationScopeRequest$1;
    /** UTC Timezone
     *
     * Allowed formats:
     * - "YYYY-MM-DDThh:mmZ"
     * - "YYYY-MM-DDThh:mm:ssZ"
     * - "YYYY-MM-DDThh:mm:ss.sZ"
     * - "YYYY-MM-DDThh:mm:ss.ssZ"
     * - "YYYY-MM-DDThh:mm:ss.sssZ"
     *
     * Example: `2022-01-12T12:00:00.000Z` */
    dueBy?: string | null;
}
interface ProjectPlanTaskAssigneeRequest {
    type: 'user' | 'group' | 'vendorOrderTemplate' | 'projectCreator';
    /** The user, group or vendor identifier, depending on the type chosen. It is not required for `projectCreator`. */
    id?: string;
}
interface WorkflowTaskConfigurationScopeRequest$1 {
    /** The applicability impact of the workflow configuration:
     *
     * - global: used for global tasks, that are not associated to a target language
     * - sourceLanguage: changes affect only the task associated to the source language specified in `sourceLanguage` field. For using this type, must include the `sourceLanguage` field.
     * - targetLanguage: changes affect only the task associated to the target language specified in `targetLanguage` field. For using this type, must include the `targetLanguage` field.
     * - languageDirection: changes affect only the task associated to the language direction specified in `languageDirection` field. For using this type, must include the `languageDirection` field.
     */
    type: 'global' | 'sourceLanguage' | 'targetLanguage' | 'languageDirection';
    sourceLanguage?: SourceLanguageRequest;
    targetLanguage?: TargetLanguageRequest;
    languageDirection?: LanguageDirectionItem;
}
interface AllLanguagesSettings {
    /** Segments Verification settings. */
    segmentsVerification: SegmentsVerification;
    /** Segments to Exclude settings. */
    segmentsToExclude: SegmentsToExclude;
    /** QA Checker Inconsistencies settings. */
    inconsistencies: QACheckerInconsistencies;
    /** QA Checker Punctuation settings. */
    punctuation: QACheckerPunctuation;
    /** QA Checker Numbers settings. */
    numbers: QACheckerNumbers;
    /** QA Checker Word list settings. */
    wordList: QACheckerWordlist;
    /** QA Checker Regular Expressions settings. */
    regularExpressions: QACheckerRegularExpressions;
    /** QA Checker Trademark check settings. */
    trademarkCheck: QACheckerTrademarkcheck;
    /** QA Checker Length Verification settings. */
    lengthVerification: QACheckerLengthVerification;
}
interface PerLanguageSettings {
    /**
     * The language object.
     */
    targetLanguage: Language;
    /**
     * QA Checker Punctuation settings.
     */
    punctuation: QACheckerPunctuation;
    /**
     * QA Checker Numbers settings.
     */
    numbers: QACheckerNumbers;
    /**
     * QA Checker Word list settings.
     */
    wordList: QACheckerWordlist;
    /**
     * QA Checker Regular Expressions settings.
     */
    regularExpressions: QACheckerRegularExpressions;
}
interface SegmentsVerification {
    checkForgottenTranslation?: boolean;
    forgottenTranslationSeverity?: 'error' | 'warning' | 'note';
    checkSourceTargetIdentical?: boolean;
    sourceTargetIdenticalSeverity?: 'error' | 'warning' | 'note';
    identicalSegmentsIgnoreTags?: boolean;
    identicalSegmentsIgnoreCase?: boolean;
    checkTargetLonger?: boolean;
    longerByValue?: number;
    checkTargetShorter?: boolean;
    shorterByValue?: number;
    ignoreSegmentsFewerThanCount?: number;
    ignoreSegmentsFewerThanBase?: 'words' | 'characters';
    checkForbiddenChars?: boolean;
    forbiddenChars?: string;
    forbiddenCharsSeverity?: 'error' | 'warning' | 'note';
}
interface SegmentsToExclude {
    excludePerfectMatchSegments?: boolean;
    excludeExactMatches?: boolean;
    excludeFuzzyMatches?: boolean;
    excludeFuzzyMatchesValue?: number;
    excludeNewTranslation?: boolean;
    excludeConfirmedTranslations?: boolean;
    excludeLockedSegments?: boolean;
    excludeIdentical?: boolean;
    elementContextExclusion?: boolean;
    exclusionContextList?: string[];
    reportAllNonExcluded?: boolean;
    reportAllNonExcludedSeverity?: 'error' | 'warning' | 'note';
}
interface QACheckerInconsistencies {
    checkInconsistentTranslations?: boolean;
    checkInconsistentTranslationsSeverity?: 'error' | 'warning' | 'note';
    checkInconsistentTranslationsIgnoreTags?: boolean;
    checkInconsistentTranslationsIgnoreCase?: boolean;
    checkRepeatedWords?: boolean;
    checkRepeatedWordsSeverity?: 'error' | 'warning' | 'note';
    checkRepeatedWordsIgnoreNumbers?: boolean;
    checkRepeatedWordsIgnoreCase?: boolean;
    checkUneditedSegmentsFuzzy?: boolean;
    checkUneditedSegmentsFuzzySeverity?: 'error' | 'warning' | 'note';
    checkOnlyConfirmedSegments?: boolean;
    checkIfMatchScoresBelow?: boolean;
    checkIfMatchScoresBelowValue?: number;
}
interface QACheckerPunctuation {
    checkIdenticalPunctuation?: boolean;
    checkIdenticalPunctuationSeverity?: 'error' | 'warning' | 'note';
    checkSpanishPunctuation?: boolean;
    checkSpanishPunctuationSeverity?: 'error' | 'warning' | 'note';
    checkUnintentionalSpacesBeforePunctuation?: boolean;
    checkUnintentionalSpacesBeforePunctuationSeverity?: 'error' | 'warning' | 'note';
    checkUnintentionalSpacesBeforePunctuationValues?: string;
    punctuationSpacesFrench?: boolean;
    checkMultipleSpaces?: boolean;
    checkMultipleSpacesSeverity?: 'error' | 'warning' | 'note';
    checkMultipleDots?: boolean;
    checkMultipleDotsSeverity?: 'error' | 'warning' | 'note';
    ignoreThreeDots?: boolean;
    checkExtraSpace?: boolean;
    checkExtraSpaceSeverity?: 'error' | 'warning' | 'note';
    checkCapitalizationOfInitials?: boolean;
    checkCapitalizationOfInitialsSeverity?: 'error' | 'warning' | 'note';
    checkConsistencyOfGlobalCapitalization?: boolean;
    checkConsistencyOfGlobalCapitalizationSeverity?: 'error' | 'warning' | 'note';
    checkBrackets?: boolean;
    checkBracketsSeverity?: 'error' | 'warning' | 'note';
}
interface QACheckerNumbers {
    checkNumbers?: boolean;
    checkNumbersSeverity?: 'error' | 'warning' | 'note';
    checkTimes?: boolean;
    checkTimesSeverity?: 'error' | 'warning' | 'note';
    checkDates?: boolean;
    checkDatesSeverity?: 'error' | 'warning' | 'note';
    checkMeasurements?: boolean;
    checkMeasurementsSeverity?: 'error' | 'warning' | 'note';
}
interface QACheckerWordlist {
    enabled: boolean;
    searchWholeWords: boolean;
    ignoreCase: boolean;
    checkWordListSeverity: 'error' | 'warning' | 'note';
    wordList: Array<{
        wrongForm: string;
        correctForm: string;
    }>;
}
interface QACheckerRegularExpressions {
    checkRegularExpressions: boolean;
    regularExpressionSeverity: 'error' | 'warning' | 'note';
    regularExpressions: Array<{
        description: string;
        regexSource: string;
        regexTarget: string;
        ignoreCase: boolean;
        condition: 'targetAndSource' | 'targetNotSource' | 'sourceNotTarget' | 'sourceOnly' | 'targetOnly' | 'differentCount' | 'groupedTargetAndSource';
    }>;
}
interface QACheckerTrademarkcheck {
    enabled: boolean;
    trademarkSeverity: 'error' | 'warning' | 'note';
    /**Default: ® © ™ (c) (r) (tm) */
    trademarkSymbols: Array<string>;
}
interface QACheckerLengthVerification {
    /**
     * Checks if the length of the target segment is within the allowed limit.
     */
    checkLengthLimitation: boolean;
    /**
     * Severity of the check.
     */
    checkLengthLimitationSeverity: 'error' | 'warning' | 'note';
    /**
     * Type of target segment verification.
     */
    targetSegmentsVerificationType: 'fileSpecificLimit' | 'absoluteCharacterCount';
    /**
     * Absolute character count used in case `targetSegmentsVerificationType absoluteCharacterCount`.
     */
    absoluteCharCountValue: number;
}
interface ProjectQuoteTemplate {
    /** The identifier of the quote template. */
    id: string;
    /** The name of the quote template. */
    name?: string;
    /** The description of the quote template. */
    description?: string;
    /** Folder used for resource storage. */
    location: Folder;
}
interface QuoteUpdateRequest {
    languageCosts?: QuoteLanguageCostRequest[];
    additionalCosts?: QuoteAdditionalCostRequest[];
}
interface QuoteLanguageCostRequest {
    /** The name of the additional cost. */
    name: string;
    /** The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types. */
    count: number;
    /** The cost of a unit. */
    cost: number;
    /** The type of the additional cost. */
    costType?: 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | null;
    /** The unit type of the 'volume' cost, used for counting the units. */
    volumeUnitType?: 'words' | 'characters' | null;
    targetLanguage?: TargetLanguageRequest;
    /** Indicates the order in which the additional cost is computed. */
    costOrder: number;
    /** Describes how the cost of type 'conditional' will be added to total cost. */
    conditionalCostType?: 'absolute' | 'relative' | 'percentage' | null;
    /** The operator applied between the 'costVariable' and 'operand'. */
    conditionalCostOperator?: 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual' | null;
    /** The variable that is evaluated against the 'operand' based on the 'costOperator'. */
    conditionalCostVariable?: 'wordCount' | 'runningTotal' | null;
    /** The value that is evaluated against the 'costVariable' based on the 'costOperator'. */
    conditionalCostThreshold: number;
}
interface QuoteAdditionalCostRequest {
    /** The name of the additional cost. */
    name: string;
    /** The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types. */
    count: number;
    /** The cost of a unit. */
    cost: number;
    /** The type of the additional cost. */
    costType?: 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | null;
    /** The unit type of the 'volume' cost, used for counting the units. */
    volumeUnitType?: 'words' | 'characters' | null;
    /** Indicates the order in which the additional cost is computed. */
    costOrder: number;
    /** Describes how the cost of type 'conditional' will be added to total cost. */
    conditionalCostType?: 'absolute' | 'relative' | 'percentage' | null;
    /** The operator applied between the 'costVariable' and 'operand'. */
    conditionalCostOperator?: 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual' | null;
    /** The variable that is evaluated against the 'operand' based on the 'costOperator'. */
    conditionalCostVariable?: 'wordCount' | 'runningTotal' | null;
    /** The value that is evaluated against the 'costVariable' based on the 'costOperator'. */
    conditionalCostThreshold: number;
}
interface Quote$1 {
    /** Total translation fee. */
    totalAmount: number | null;
    /** The currency code (ISO 4217). */
    currencyCode: string;
    /** Fees calculated based on segment status (new, translated, signed off) and previous leverage (100% match and identical context, 100% match, <100%match, cross-file repetitions). */
    translationCosts: QuoteTranslationCost$1[];
    /** Fees relevant for a specific target language. */
    languageCosts: QuoteLanguageCost$1[];
    /** Other extra fees not captured by translationCosts and languageCosts. */
    additionalCosts: QuoteAdditionalCost$1[];
}
interface QuoteTranslationCost$1 {
    total: number | null;
    /** The language object. */
    targetLanguage: Language;
    /** Translation Cost Item */
    exactMatch: TranslationCostItem$1;
    /** Translation Cost Item */
    inContextExactMatch: TranslationCostItem$1;
    /** Translation Cost Item */
    new: TranslationCostItem$1;
    /** Translation Cost Item */
    perfectMatch: TranslationCostItem$1;
    /** Translation Cost Item */
    repetitions: TranslationCostItem$1;
    /** Translation Cost Item */
    machineTranslation: TranslationCostItem$1;
    fuzzyMatch: TranslationCostFuzzyItem$1[];
    /** The sum of all the previously computed costs. */
    runningTotal: number | null;
}
interface TranslationCostItem$1 {
    /** The total number of units. */
    count: number | null;
    /** The cost of a unit. */
    rate: number | null;
    /** The total cost for the current item. */
    total: number | null;
    /** The sum of all the previously computed costs. */
    runningTotal: number | null;
}
interface FuzzyCategory$2 {
    /** The minimum of the range. */
    minimum: number | null;
    /** The maximum of the range. */
    maximum: number | null;
}
interface TranslationCostFuzzyItem$1 extends TranslationCostItem$1 {
    /** Fuzzy category range. */
    fuzzyCategory: FuzzyCategory$2;
}
interface QuoteLanguageCost$1 {
    /** The name of the additional cost. */
    name: string;
    /** The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types. */
    count: number | null;
    /** The computed cost. */
    total: number | null;
    /** The cost of a unit. */
    cost: number | null;
    /** The type of the additional cost */
    costType: 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | null;
    /** The unit type of the 'volume' cost, used as a reference for the unit cost. */
    volumeUnitType: 'words' | 'characters' | null;
    /** The language object. */
    targetLanguage: Language;
    /** Indicates the order in which the additional cost is computed. */
    costOrder: number | null;
    /** The condition type of the conditional cost. */
    conditionalCostType: 'absolute' | 'relative' | 'percentage' | null;
    /** The operator applied between the 'costVariable' and 'operand'. */
    conditionalCostOperator: 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual' | null;
    /** The variable that is evaluated against the 'operand' based on the 'costOperator'. */
    conditionalCostVariable: 'wordCount' | 'runningTotal' | null;
    /** The value that is evaluated against the 'costVariable' based on the 'costOperator'. */
    conditionalCostThreshold: number | null;
    /** The sum of all the previously computed costs. */
    runningTotal: number | null;
}
interface QuoteAdditionalCost$1 {
    /** The name of the additional cost. */
    name: string;
    /** The number of units used to compute the total. Used only for 'volume', 'hourly', 'perPage' and 'percentage' cost types. */
    count: number | null;
    /** The computed cost. */
    total: number | null;
    /** The cost of a unit. */
    cost: number | null;
    /** The type of the additional cost */
    costType: 'volume' | 'perTargetLanguage' | 'perFile' | 'hourly' | 'percentage' | 'perPage' | 'conditional' | null;
    /** The unit type of the 'volume' cost, used as a reference for the unit cost. */
    volumeUnitType: 'words' | 'characters' | null;
    /** Indicates the order in which the additional cost is computed. */
    costOrder: number | null;
    /** The condition type of the conditional cost. */
    conditionalCostType: 'absolute' | 'relative' | 'percentage' | null;
    /** The operator applied between the 'costVariable' and 'operand'. */
    conditionalCostOperator: 'less' | 'lessOrEqual' | 'greater' | 'greaterOrEqual' | null;
    /** The variable that is evaluated against the 'operand' based on the 'costOperator'. */
    conditionalCostVariable: 'wordCount' | 'runningTotal' | null;
    /** The value that is evaluated against the 'costVariable' based on the 'costOperator'. */
    conditionalCostThreshold: number | null;
    /** The sum of all the previously computed costs. */
    runningTotal: number | null;
}
interface TQAProfile {
    /**
     * The identifier of the TQA profile.
     */
    id: string;
    /**
     * The name of the TQA Profile.
     */
    name?: string;
    /**
     * The TQA Profile description.
     */
    description?: string;
    /**
     * Folder used for resource storage.
     */
    location: Folder;
    /**
     * Pass/Fail Threshold is used to define the maximum number of penalty points admitted before failing the translation document.
     */
    passFailThreshold: TQAProfilePassFailThreshold;
    /**
     * Categories and subcategories are assessment options that reviewers can use to classify any translation-related issue that they find in a file.
     */
    categories: TQAProfileCategory[];
    /**
     * Severities are custom metrics that reviewers can use to measure the importance of any translation-related issues that they find in a file.
     */
    severities: TQAProfileSeverity[];
    /**
     * The TQA scoring indicates whether translations pass or fail the acceptance threshold.
     */
    scores: TQAProfileScore[];
    /**
     * deprecated
     * Folder used for resource storage.
     */
    path?: Folder[];
}
interface TQAProfilePassFailThreshold {
    points: number;
    quantity: number;
    scope: 'words' | 'characters';
}
interface TQAProfileCategory {
    id: string;
    name: string;
    description?: string;
    abbreviation?: string;
}
interface TQAProfileSeverity {
    id: string;
    name: string;
    type: 'error' | 'warning' | 'note';
}
interface TQAProfileScore {
    category: TQAProfileCategory;
    severity: TQAProfileSeverity;
    penalty: number;
}
interface TQAProfilesListRequestParams {
    /**A comma separated list of fields to include in the response. Every value in the list should either consist of a top-level property name (excluding the items envelope for endpoints returning lists) or refer to a property of a top-level property of type object, in the following form: "toplevelpropertyname.subpropertyname". When this query parameter is omitted, default resource representations are returned (excluding fields marked as optional). The same applies to nested objects when just specifying the top-level property name, without explicitly listing sub-property names. When specifying the fields query parameter, only the specified fields are returned. The id property is always returned. */
    fields?: string;
    /**The identifiers of the resource folders. You can control the behavior by using the 'locationStrategy' */
    location?: string[];
    /**Options:
     * - `location:` all the resources located strictly in the folders from the 'location' parameter (default);
     * - `lineage:` all the resources located in the folders specified in the 'location' parameter, as well as the subfolders;
     * - `bloodline:` all the resources located in the folders specified in the 'location' parameter, as well as the ancestor folders;
     * - `genealogy:` the resources located in the folders specified in the 'location' parameter together with subfolders and ancestors. */
    locationStrategy?: 'location' | 'lineage' | 'bloodline' | 'genealogy';
    /**The number of items that are skipped to reach the desired page.
     *
     * `>= 0`
     *
     * `default 0`*/
    skip?: number;
    /**A comma separated list of fields used to sort the resources in the response. Each field can have a unary negative to imply descending sort order. */
    sort?: string;
    /**The number of items to include inside the page.
     *
     * `>= 1` `<= 100`
     *
     * `default 100` */
    top?: number;
}
interface TQAProfilesListResponse {
    /** As a project manager, you choose a TQA configuration and use it to automatically assess the quality of a translation document.
     *
     * The TQA configuration specifies:
     * - Categories and subcategories that reviewers will use to classify the translation issues in a document.
     * - Severities to define custom metrics you want to use to assess translation quality.
     * - Score to measure the importance of each category or subcategory of an issue.
     * - Pass/Fail Threshold to define the maximum number of penalty points admitted before failing the translation document. */
    items: TQAProfile[];
    itemCount: number;
}
interface ProjectTemplateSettingsRequest {
    /** General settings. */
    general?: GeneralSettingsRequest$1;
    /** Quality Managment */
    qualityManagement?: {
        /**
         * Resource configuration properties.
         */
        tqaProfile?: ConfigurationResourceRequest;
    };
}
interface GeneralSettingsRequest$1 {
    /** This forces the project to be translated using the Language Cloud Online Editor exclusively. `Default: false` */
    forceOnline?: boolean;
    /**
     * Resource configuration properties.
     */
    quoteTemplate?: ConfigurationResourceRequest;
    /** Customer Portal visibility `Default: true` */
    customerPortalVisibility?: boolean;
    /** Completion configuration properties. */
    completionConfiguration?: CompletionConfigurationRequest$1;
}
interface CompletionConfigurationRequest$1 {
    /** Number of days until automatic completion of the project. Starting from project creation date.
     *
     * `>= 1` `<= 365`
     *
     * `Default: 90`
     */
    completeDays?: number;
    /** Number of days after project completion when the project will be archived.
     *
     * `>= 1` `<= 365`
     *
     * `Default: 90`
     */
    archiveDays?: number;
    /** Number of days before archiving when a reminder will be sent.
     *
     * `>= 1` `<= 365`
     *
     * `Default: 7`
     */
    archiveReminderDays?: number;
}
interface ProjectTemplateSettings {
    /** General settings. */
    general: ProjectTemplateSettingsGeneral;
    /** Project Template Batch Tasks Settings. */
    batchTasks: ProjectTemplateSettingsBatchTasks;
    /** Project Template Verification Settings. */
    verification: ProjectTemplateSettingsVerification;
    /** Quality Managment. */
    qualityManagement: ProjectTemplateSettingsQualityManagement;
    /** Translation Memory settings. */
    translationMemorySettings: ProjectTemplateSettingsTranslationMemorySettings;
}
interface ProjectTemplateSettingsGeneral {
    /** Default: Restrict file downloads. */
    forceOnline?: boolean;
    /** Default: Allow editing of source text in segments. */
    allowSourceEdit?: boolean;
    /** Project Quote Template */
    quoteTemplate?: ProjectQuoteTemplate;
    /** Default: Customer Portal visibility */
    customerPortalVisibility?: boolean;
    /** Completion Configuration */
    completionConfiguration?: {
        /** Number of days until automatic completion of the project. Starting from project creation date. */
        completeDays?: number;
        /** Number of days after project completion when the project will be archived. */
        archiveDays?: number;
        /** Number of days before archiving when a reminder will be sent. */
        archiveReminderDays?: number;
    };
}
interface ProjectTemplateSettingsBatchTasks {
    /** Pre-Processing Settings */
    preProcessing?: {
        /** Default: 70 */
        minimumMatchValue?: number;
        /** Default: "overwriteIfBetter" */
        translationOverwriteMode?: 'keepExisting' | 'overwriteIfBetter' | 'overwriteAlways' | 'overwriteExceptPerfectMatch';
        /** Default: ["confirmExactMatches", "confirmContextMatches"] */
        afterApplyingTranslations?: ('confirmExactMatches' | 'confirmContextMatches' | 'lockExactMatches' | 'lockContextMatches' | 'lockGreenSegments' | 'lockAmberSegments' | 'lockRedSegments')[];
        /** Default: "leaveTargetSegmentsEmpty" */
        noMatchFoundAction?: 'leaveTargetSegmentsEmpty' | 'copySourceToTarget';
        /** Default: false */
        reportCrossFileRepetition?: boolean;
        /** Default: false */
        excludeLockedSegments?: boolean;
    };
    /** Update Translation Memory Settings */
    updateTranslationMemory?: {
        segmentsConfirmationLevels?: ('approvedTranslation' | 'approvedSignOff' | 'draft' | 'notTranslated' | 'translated' | 'rejectedTranslation' | 'rejectedSignOff')[];
        /**
         * - merge: replace (update) only the TU (from which a match was retrieved for the edited TU) with the latest available translation AND keep the other duplicates as they are. Use this option to have multiple translations for the same source together with Multiple Translation Penalty = 0.
         * - addNew: add translations as new TUs to the TM. Specify the status of the TUs (which will be added) under Segment status. This means that the existing TUs in the TM are not overwritten.
         * - overwriteExisting: delete all TUs (which have the same source, all TU duplicates) and keep only the last added TU (the latest available translation). Use this option to prevent inconsistent translations.
         * - leaveUnchanged: keep the existing TUs and do not add any new ones.
         * - keepMostRecent: replace (update) only the most recent TU (from which a match was retrieved for the edited TU) with the latest available translation AND delete all other duplicates.. Default value is "merge".
         */
        targetSegmentsDifferOption?: 'addNew' | 'overwriteExisting' | 'leaveUnchanged' | 'keepMostRecent' | 'merge';
    };
}
interface ProjectTemplateSettingsVerification {
    /** Tag Verifier Settings. */
    tagVerifier?: {
        /** Tag Verifier Settings. */
        tagVerifier?: {
            /** Check if tags have been added. Default: true */
            checkAddedTags?: boolean;
            /** Severity of added tags. Allowed values: error, warning, note. Default: error */
            addedTagsSeverity?: 'error' | 'warning' | 'note';
            /** Check if tags have been deleted. Default: true */
            checkDeletedTags?: boolean;
            /** Severity of deleted tags. Allowed values: error, warning, note. Default: error */
            deletedTagsSeverity?: 'error' | 'warning' | 'note';
            /** Check if tag order has changed. Default: true */
            checkTagOrderChanged?: boolean;
            /** Severity of tag order changed. Allowed values: error, warning, note. Default: warning */
            tagOrderChangedSeverity?: 'error' | 'warning' | 'note';
            /** Check if spacing around tags has changed. Default: true */
            checkSpacingAroundTags?: boolean;
            /** Severity of spacing around tags. Allowed values: error, warning, note. Default: note */
            spaceAroundTagsSeverity?: 'error' | 'warning' | 'note';
            /** Ignore formatting tags. Default: true */
            ignoreFormattingTags?: boolean;
            /** Ignore locked segments. Default: false */
            ignoreLockedSegments?: boolean;
            /** Ignore difference between normal and non-breaking space. Default: true */
            ignoreDifferenceBetweenNormalAndNonBreakingSpace?: boolean;
        };
    };
    /** QA checker */
    qaChecker?: {
        enabled: boolean;
        allLanguages: AllLanguagesSettings;
        perTargetLanguage: PerLanguageSettings[];
    };
}
interface ProjectTemplateSettingsQualityManagement {
    /** Quality Managment. */
    qualityManagement: QualityManagementSettings;
}
interface QualityManagementSettings {
    /** As a project manager, you choose a TQA configuration and use it to automatically assess the quality of a translation document.
The TQA configuration specifies:
- Categories and subcategories that reviewers will use to classify the translation issues in a document.
- Severities to define custom metrics you want to use to assess translation quality.
- Score to measure the importance of each category or subcategory of an issue.
- Pass/Fail Threshold to define the maximum number of penalty points admitted before failing the translation document.     */
    tqaProfile: TQAProfile;
}
interface ProjectTemplateSettingsTranslationMemorySettings {
    /** Translation Memory settings. */
    translationMemorySettings: TranslationMemorySettings;
}
interface TranslationMemorySettings {
    penalties: TranslationMemoryPenalties;
}
interface TranslationMemoryPenalties {
    standardPenalties: Translat