import type { FdoMenuV4Item, FdoItemVariant, FdoItemOverriderV4, FdoMenuV4VariantGroup, FdoMenuV4Category } from '@feedmepos/menu/entity';
export interface CategorizedItem {
    id: string | null;
    name: string;
    items: Item[];
}
export type Item = Omit<FdoMenuV4Item, 'variant'> & {
    codeName: string;
    variant?: Omit<FdoItemVariant, 'variantCombinations'> & {
        variantCombinations?: VariantItem[];
    };
};
export interface VariantItem extends FdoItemOverriderV4 {
    codeName: string;
}
export declare function mapVariant(variantGroups: FdoMenuV4VariantGroup[], variantGroupIds?: string[]): {
    [key: string]: string;
};
export declare function categorizeItems(categories: (Omit<FdoMenuV4Category, '_id'> & {
    _id: string | null;
})[], variantGroups: FdoMenuV4VariantGroup[], items: FdoMenuV4Item[]): CategorizedItem[];
export declare function combinations<T>(arr: T[][], combineFn: (a: T, b: T) => T): T[];
export interface VariantCombinationRes {
    active: boolean;
    combinationKey: string;
    selectionName: string[];
}
export interface VariantCombinationDto {
    combinationKey: string[];
    selectionName: string[];
}
/**
 * Note: Copied from '@feedmepos/core-dart', unfortunately cannot be installed in this package
 * because it will cause import error in '@feedmepos/zod-entity'... i dunno why
 */
export declare function fullVariantCombination(variants: FdoMenuV4VariantGroup[]): VariantCombinationRes[];
