import { type FdoGroupOverriderV4, type FdoItemOverriderV4, type FdoMenuV4, type FdoMenuV4Catalog, type FdoMenuV4Group, type FdoSchedulerOverriderV4 } from "@feedmepos/menu/entity";
import { type DialogProvider } from "@feedmepos/ui-library";
import { useMenuLoader } from "@/helper/menu";
import { useMenuStore } from "@/stores/menu";
export default class CatalogManager {
    private catalog;
    private menuStore;
    private updateMenu;
    private dialog;
    constructor(catalog: FdoMenuV4Catalog | undefined, menuStore: ReturnType<typeof useMenuStore>, updateMenu: ReturnType<typeof useMenuLoader>["updateMenu"], dialog: DialogProvider);
    static getItemAvailable(catalog: FdoMenuV4Catalog): string[];
    static getSellingItem(catalog: FdoMenuV4Catalog, itemsMap: Map<string, FdoMenuV4["modules"]["item"][number]>): string[];
    getCatalog(): FdoMenuV4Catalog | undefined;
    update(): Promise<void>;
    getCatalogGroup(groupId: string): FdoGroupOverriderV4 | null;
    getCatalogSchedulerGroup(groupId: string, schedulerId: string): FdoGroupOverriderV4 | null;
    overrideCatalogGroups(groups: FdoMenuV4Group[]): null | undefined;
    overrideCatalogSchedulerGroups(groups: FdoMenuV4Group[], schedulerId: string): null | undefined;
    getCatalogScheduler(schedulerId: string): FdoSchedulerOverriderV4 | null;
    overrideCatalogScheduler(scheduler: FdoSchedulerOverriderV4): null | undefined;
    overrideCatalogSchedulerItems(itemIds: string[], schedulerId: string): null | undefined;
    injectCatalogToMenu(): FdoMenuV4 | null;
    unlinkProduct(removedIds: string[]): Promise<void>;
    private create;
    private updateItemAvailable;
}
export declare function handleItemAvailable(itemId: string, overrides: FdoItemOverriderV4[] | undefined, availableInCatalog: boolean, isV3: boolean): FdoItemOverriderV4[];
