import { JSONSchemaType } from 'ajv'; import { Invoice } from '../invoice/invoice.interface'; import { InvoiceServiceOptions } from '../invoice/invoice.service'; import { Mapping } from '../mapping/mapping.interface'; import { EInvoiceMIMEType } from './format.factory.service'; export interface EInvoiceFormat { get customizationID(): string; get profileID(): string; get mimeType(): EInvoiceMIMEType; get syntax(): 'UBL' | 'CII'; fillMappingDefaults(mapping: Mapping): void; fillInvoiceDefaults(invoice: Invoice): void; generate(invoice: Invoice, options: InvoiceServiceOptions): Promise; patchSchema(schema: JSONSchemaType): any; }