import { type WorkBook, type WorkSheet } from "xlsx"; import { FdoCustomAttribute, FdoDinero } from "@feedmepos/core/entity"; import { FdoMenuV4, F_ORDER_FROM } from "@feedmepos/menu/entity"; import type { GroupItem } from "@/manager/menu/group"; export interface ExportMenuDataRow { _id: string; code: string | undefined; name: string | undefined; variantKey: string | undefined; variantName: string | undefined; category: string | undefined; subCategories: string | undefined; orderFrom: string | undefined; perXUnit: number | string | undefined; unit: string | undefined; openPrice: boolean | string | undefined; price: number | string | undefined; priceTier: Record | undefined; trackingCost: number | string | undefined; minPrice: number | string | undefined; groupByParent: boolean | string | undefined; takeawayName: string | undefined; takeawayPrice: number | string | undefined; tag: Record; } export interface ExportAddonGroupRow { id: string; name: string; min: number; max: number; stackable: string; itemId: string; itemCode: string; itemName: string; itemNameOverrider: string; combinationKey: string; combinationName: string; price: number; priceTier: Record; orderFrom: string; isDefault: string; index: number; } export interface TransformDataResult { rows: ExportMenuDataRow[]; metaData: { priceTiers: string[]; }; } export interface GroupedItemVariant { combinationKey: string; name: string; code: string | null | undefined; takeawayUsed: string | null | undefined; orderFrom: F_ORDER_FROM | null | undefined; price: FdoDinero | null | undefined; } export interface GroupedItem { _id: string; code: string; name: string; variants: GroupedItemVariant[]; category: string | null | undefined; subCategories: string[] | null | undefined; orderFrom: F_ORDER_FROM; perXUnit: number | null | undefined; unit: string | null | undefined; openPrice: boolean; price: FdoDinero; trackingCost: FdoDinero | null | undefined; minPrice: FdoDinero | null | undefined; groupByParent: boolean | null | undefined; takeawayId: string | null | undefined; customAttributes: Record | null; priceTiers: Record | null; } export interface GroupedAddon { _id: string; name: string; min: number; max: number; stackable: boolean; itemId: string; itemName: string; itemCode: string; combinationKey: string; combinationName: string; price: number; orderFrom: F_ORDER_FROM; isDefault: boolean; priceTiers: Record | null; index: number; } export interface itemsLinkWithGroup { itemId: string; itemName: string; defaultCatalog: string; } export declare const ADDON = "ADDON"; export declare function mapVariant(menu: FdoMenuV4, variantGroupIds: string[]): { [key: string]: string; }; export declare function generateHeaderRow(attributeSettings: FdoCustomAttribute[], priceTierKeys: string[], isCatalog?: boolean): string[]; export declare function generateAddonHeaderRow(priceTierKeys: string[], isCatalog?: boolean): string[]; export declare function toDinero(price: number): { currency: "ALL" | "AED" | "AFN" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL"; amount: number; precision: number; }; export declare function formatDinero(dinero?: FdoDinero | null): string; export declare function compareDinero(dinero1: FdoDinero, dinero2: FdoDinero | null | undefined): boolean; export declare function getUpdatedPrice(elementPrice: any, itemPrice: any, variantCombinationPrice?: any): any; export declare function getUpdatedMinPrice(elementMinPrice: string, catalogItem: any): any; export declare function extractExcelDataGeneric(workbook: WorkBook): T[][]; export declare function extractExcelData(workbook: WorkBook): ExportMenuDataRow[][]; export declare function extractAddonExcelData(workbook: WorkBook): ExportAddonGroupRow[][]; export declare function extractItemsGroupExcelData(workbook: WorkBook): itemsLinkWithGroup[][]; export declare function transformValue(v: T): NonNullable | null; export declare function generateId(key: string, length: number): string; export declare function processGroupItem(newItem: GroupedAddon, index: number, originalItem?: GroupedAddon[] | null, combinationKey?: string | null, baseSelection?: string | null): GroupItem; export declare function normalizeSheetName(name: string): string; export declare function getPriceTierKeys(row: ExportMenuDataRow | ExportAddonGroupRow): Record; export declare function validateInputData(row: Record, fileMap: Record, isCatalog?: boolean, catalogName?: string): void; export declare function validateAddonInputData(row: Record, addonFile: Record, catalogName?: string): void; export declare function stripWorkbookFormatting(sheet: WorkSheet): void;