import type { FdoTaxInclusion } from "@feedmepos/core/entity"; import { F_ORDER_FROM } from "@feedmepos/menu/entity"; import type { FdoMarkupOption, FdoMasterCatalogSetting, FdoMenuV4Catalog, FdoCatalogPriceTierRule } from "@feedmepos/menu/entity"; export declare enum CatalogTaxSettingMode { AUTO = "auto", MANUAL = "manual" } interface BaseCatalogTaxSetting { mode: CatalogTaxSettingMode; } interface AutoCatalogTaxSetting extends BaseCatalogTaxSetting { mode: CatalogTaxSettingMode.AUTO; } interface ManualCatalogTaxSetting extends BaseCatalogTaxSetting { mode: CatalogTaxSettingMode.MANUAL; inclusive: FdoTaxInclusion[]; } export type CatalogTaxSetting = AutoCatalogTaxSetting | ManualCatalogTaxSetting; export interface CatalogSetting { _id: string; name: string; taxSetting: CatalogTaxSetting; orderFrom: F_ORDER_FROM; markupOptions: FdoMarkupOption[] | null; /** * if priceTierRules exist, when publish menu will run thru priceTierRules and update * usePriceTiers before update restaurant menu, so no need to run eval when override menu */ usePriceTiers: string[] | null | undefined; priceTierRules: FdoCatalogPriceTierRule[] | null | undefined; } export declare enum LinkPriceTierMode { Normal = 0, Rules = 1 } type CatalogInclusive = FdoTaxInclusion[] | null | undefined; export declare class CatalogSettingManager { static fromCatalog(catalog: FdoMenuV4Catalog, isV4: boolean): CatalogSetting; static fromMainCatalog(setting: FdoMasterCatalogSetting | null | undefined): CatalogSetting; static toCatalog(catalog: CatalogSetting): Omit; static initCatalogSetting(): CatalogSetting; static transformTax(inclusiveTaxes: CatalogInclusive): CatalogTaxSetting; static autoTax(): AutoCatalogTaxSetting; static manualTax(inclusive: FdoTaxInclusion[]): ManualCatalogTaxSetting; } export {};