import { type WorkBook } from "xlsx"; import type { FdoCustomAttribute } from "@feedmepos/core/entity"; import { FdoMenuV4, FdoMenuV4Item, FdoItemOverriderV4 } from "@feedmepos/menu/entity"; import type { FdoGroupOverriderV4 } from "@feedmepos/menu/entity"; import { type ExportMenuDataRow, type TransformDataResult } from "@/helper/import-export-utils"; export declare class MenuExport { menu: FdoMenuV4; categoryMap: { [id: string]: number; }; itemMap: { [id: string]: number; }; groupMap: { [id: string]: number; }; takeawayMap: { [id: string]: number; }; subCategoryMap: { [id: string]: number; }; attributeSettings: FdoCustomAttribute[]; priceTierKeys: string[]; constructor(menu: FdoMenuV4, attributeSettings: FdoCustomAttribute[]); transformData(): { rows: any[]; combinationNameMapping: { [key: string]: { [combinationKey: string]: string; }; }; }; transformOverrideData(data: FdoItemOverriderV4[], combinationNameMappings: { [itemId: string]: { [combinationKey: string]: string; }; }): TransformDataResult; private getSubCategoryNames; transformProductToDataRow(item: FdoMenuV4Item, combinationNameMapping: { [key: string]: string; }, combinationKey?: string | null | undefined): any[]; transformOverrideDataToRow(item: FdoMenuV4Item, itemOverrider: FdoItemOverriderV4, // base or variant combinationNameMapping: { [key: string]: string; }, combinationKey?: string | null | undefined): ExportMenuDataRow; transformAddonGroup(combinationNameMapping: { [key: string]: { [combinationKey: string]: string; }; }): any[]; transformOverrideAddonGroup(data: FdoGroupOverriderV4[], combinationNameMappings: { [itemId: string]: { [combinationKey: string]: string; }; }): any[]; private mapCatalogAddonGroup; private mapAddonGroup; transformItemsLinkWithGroup(): { id: string; name: string; items: { itemId: string; itemName: string; defaultCatalog: string; }[]; }[]; /** * @deprecated Use {@link exportToExcelStreaming} instead. * This method builds all 3 workbooks in memory simultaneously, which causes * out-of-memory errors for large menus (e.g. 262 catalogs × 923 items). * It also duplicates catalog data via intermediate workbook copying. */ exportToExcel(): any[]; exportCatalogToExcelExcelJS(combinationNameMapping: { [itemId: string]: { [combinationKey: string]: string; }; }, workbook: WorkBook): void; exportCatalogAddonToExcelExcelJS(combinationNameMappings: { [itemId: string]: { [combinationKey: string]: string; }; }, workbook: WorkBook): void; exportToExcelStreaming(onWorkbook: (workbook: WorkBook) => Promise): Promise; }