import { VendorInvoiceActionEnum } from "../enums/vendor_invoice_action_enum"; import { VendorInvoiceStatusEnum } from "../enums/vendor_invoice_action_status_enum"; import { IVendorInvoiceEntity } from "../interface/vendor_invoice.entity.interface"; import { VendorInvoiceEntityModel } from "../model/vendor_invoice.entity.model"; import { VendorInvoiceItemEntityModel } from "../model/vendor_invoice_item.entity.model"; import { VendorInvoicePaymentEntityModel } from "../model/vendor_invoice_payment.entity.model"; import { FlowConfig } from "./flow-config.type"; export interface IVendorInvoiceFlowContextData { invoice: IVendorInvoiceEntity; items: VendorInvoiceItemEntityModel[]; } export type IVendorInvoiceFlowConfig = { [key in VendorInvoiceStatusEnum]?: { actions: { [key in VendorInvoiceActionEnum]?: { permissions: string[]; next: () => VendorInvoiceStatusEnum; }; }; }; }; export interface IVendorInvoiceFlowConfigContextData { vendorInvoicePayment?: VendorInvoicePaymentEntityModel; existingVendorInvoice?: VendorInvoiceEntityModel; amountDifference?: number; [VendorInvoiceActionEnum.ADVANCE_ADJUSTMENT]?: { advanceAdjustmentAmount: number; existingVendorInvoice: VendorInvoiceEntityModel; }; } export declare const vendorInvoiceFlowConfig: FlowConfig;