import { CrowdinApi, PaginationOptions, PatchRequest, ResponseList, ResponseObject } from '../core'; export declare class Fields extends CrowdinApi { /** * @requiredScope field:read * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.getMany */ listFields(options?: FieldsModel.ListFieldsParams): Promise>; /** * @requiredScope field:write * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.post */ addField(request: FieldsModel.AddFieldRequest): Promise>; /** * @requiredScope field:read * @param fieldId field identifier * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.get */ getField(fieldId: number): Promise>; /** * @requiredScope field:write * @param fieldId field identifier * @see https://developer.crowdin.com/api/v2/#operation/api.fields.delete */ deleteField(fieldId: number): Promise; /** * @requiredScope field:write * @param fieldId field identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.fields.patch */ editField(fieldId: number, request: PatchRequest[]): Promise>; } export declare namespace FieldsModel { type Entity = 'project' | 'user' | 'task' | 'file' | 'translation' | 'string' | 'term' | 'concept'; type Type = 'checkbox' | 'radiobuttons' | 'date' | 'datetime' | 'number' | 'labels' | 'select' | 'multiselect' | 'text' | 'textarea' | 'url'; type Place = 'projectCreateModal' | 'projectHeader' | 'projectDetails' | 'projectCrowdsourceDetails' | 'projectSettings' | 'projectTaskEditCreate' | 'projectTaskDetails' | 'projectTaskBoardCard' | 'fileDetails' | 'fileSettings' | 'userEditModal' | 'userDetails' | 'userPopover' | 'stringEditModal' | 'stringDetails' | 'translationUnderContent' | 'termDetails' | 'termEditModal' | 'conceptDetails' | 'conceptEditModal'; interface Location { place: Place; } interface Option { label: string; value: string; } interface OtherFieldConfig { locations: Location[]; } interface ListFieldConfig extends OtherFieldConfig { options: Option[]; } interface NumberFieldConfig extends OtherFieldConfig { min: number; max: number; units: string; } type Config = ListFieldConfig | NumberFieldConfig | OtherFieldConfig; interface ListFieldsParams extends PaginationOptions { search?: string; entity?: Entity; type?: Type; } interface Field { id: number; name: string; slug: string; type: Type; description: string; entities: Entity[]; config: Config; createdAt: string; updatedAt: string; } interface AddFieldRequest { name: string; slug: string; type: Type; description?: string; entities: Entity[]; config?: Config; } }