import type { AnyEInvoiceSubmission } from "@/api"; import type { FdoMyEInvoiceSubmission, FdoThEInvoiceSubmission, FdoVnEInvoiceSubmission } from "@/type"; import type { FdoRestaurant, FdoStoreOption } from "@feedmepos/core/entity"; import type { RendererElement, RendererNode, VNode } from "vue"; export type Field = { title: string; value: string; class?: string; meta?: any; render?: () => VNode; }; export type SubmissionDocument = { fields: Field[]; bills?: Field[][]; }; export type Submission = { raw: FdoMyEInvoiceSubmission | FdoThEInvoiceSubmission | FdoVnEInvoiceSubmission; submissionSummary: Field[]; submissionDetails: Field[]; merchant: Field[]; customer?: Field[]; formatDocuments?: () => SubmissionDocument[]; export?: { [key: string]: () => void; }; sendEmail?: (email: string) => void; canSendEmail: boolean; }; export declare abstract class EInvoiceManager { private settingDialogRef; abstract get settingDialogComponent(): any; abstract formatSubmission(submission: AnyEInvoiceSubmission): Submission; abstract sortSubmissions(submissions: AnyEInvoiceSubmission[]): AnyEInvoiceSubmission[]; abstract initRestaurantProfile(restaurant: FdoRestaurant): any; abstract initMarketingProfile(businessId: string, store?: FdoStoreOption): any; abstract getDate(): { startDate: string; endDate: string; }; exportSubmissions?(submissions: any[], dateRange: { startDate: string; endDate: string; }): void; bindSettingDialogRef(instance: any): void; settingDialog(): { show(): void; hide(): void; }; }