import * as IShared from '../../../shared/interface'; import { DocumentType, ExternalDocumentType } from '../../../shared/entities/stock'; export type Entity = DocumentType; export declare const Route = "documentType"; export declare const UpperName = "DocumentType"; export declare const LowerName: string; export declare const DocumentTypeUserTypeEnum: { client: 'client'; provider: 'provider'; commissioner: 'commissioner'; store_operator: 'store_operator'; self: 'self'; }; export type IDocumentTypeUserType = (typeof DocumentTypeUserTypeEnum)[keyof typeof DocumentTypeUserTypeEnum]; export declare const documentTypeUserTypes: string[]; export declare const DocumentTypeCodeTypeEnum: { PC: 'PC'; FTPF: 'FTPF'; PCTL: 'PCTL'; AD: 'AD'; NCAD: 'NCAD'; FT: 'FT'; FS: 'FS'; FR: 'FR'; NC: 'NC'; GT: 'GT'; RE: 'RE'; LNC: 'LNC'; NPC: 'NPC'; QECI: 'QECI'; OPI: 'OPI'; OP: 'OP'; PF: 'PF'; EF: 'EF'; EFSN: 'EFSN'; EM: 'EM'; GTF: 'GTF'; DF: 'DF'; CF: 'CF'; NPF: 'NPF'; ADF: 'ADF'; NCF: 'NCF'; NCRF: 'NCRF'; FTF: 'FTF'; PI: 'PI'; IM: 'IM'; IMN: 'IMN'; QE: 'QE'; TR: 'TR'; TRS: 'TRS'; GTI: 'GTI'; ADSM: 'ADSM'; FTSM: 'FTSM'; FP: 'FP'; RDP: 'RDP'; NRCL: 'NRCL'; FPM: 'FPM'; FTO: 'FTO'; FRO: 'FRO'; REO: 'REO'; }; export type IDocumentTypeCodeType = (typeof DocumentTypeCodeTypeEnum)[keyof typeof DocumentTypeCodeTypeEnum]; export declare const documentTypeCodeTypes: string[]; export interface IEntityExtended extends DocumentType { external_document_type: ExternalDocumentType | null; } export interface ICreateRequest { external_document_type_id: string | null; document_set_id: string; code: IDocumentTypeCodeType; description: string; group: string; is_searchable: boolean; quantity_in?: boolean; quantity_out?: boolean; credit?: boolean; debit?: boolean; invoice: boolean; return: boolean; pay: boolean; allow_create_from_header_without_lines: boolean; allow_commissioner: boolean; duplicate_group?: string | null; allow_duplicates: boolean; requires_picking: boolean; allow_document_line_assoc_plugins: boolean; user_type: IDocumentTypeUserType; final_consumer: boolean; ensure_same_provider: boolean; } export interface IUpdateRequest { external_document_type_id?: string | null; document_set_id?: string; code?: IDocumentTypeCodeType; description?: string; group?: string; is_searchable?: boolean; quantity_in?: boolean; quantity_out?: boolean; credit?: boolean; debit?: boolean; invoice: boolean; return: boolean; pay: boolean; allow_create_from_header_without_lines: boolean; allow_commissioner?: boolean; duplicate_group?: string | null; allow_duplicates?: boolean; requires_picking?: boolean; allow_document_line_assoc_plugins: boolean; user_type?: IDocumentTypeUserType; final_consumer?: boolean; ensure_same_provider?: boolean; } export interface IFindRequest { description?: string; } export interface IFindResponse { id: number; group: string; description: string; user_type: IDocumentTypeUserType; } export interface IRepository { findById(id: number): Promise; findByQuery(data: IFindRequest): Promise; findMinified(params?: IShared.IFindMinifiedRequest): Promise; find(): Promise; findDetailed(): Promise; create(data: ICreateRequest): Promise; update(selector: IShared.IFindByIdNumberRequest, data: IUpdateRequest): Promise; deleteOne(selector: IShared.IFindByIdNumberRequest): Promise; } export type IController = IShared.IEntityWithUserToken; export type IApi = Omit;