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<FdoMenuV4Catalog, "override">;
    static initCatalogSetting(): CatalogSetting;
    static transformTax(inclusiveTaxes: CatalogInclusive): CatalogTaxSetting;
    static autoTax(): AutoCatalogTaxSetting;
    static manualTax(inclusive: FdoTaxInclusion[]): ManualCatalogTaxSetting;
}
export {};
