export interface BaseRules {
    create: boolean;
    delete: boolean;
    edit: boolean;
}
export type ItemRules = BaseRules & {
    sort: boolean;
    addon: boolean;
    code: boolean;
    name: boolean;
    category: boolean;
    description: boolean;
    thumbnail: boolean;
    orderFrom: boolean;
    orderFromNone: boolean;
    orderFromActiveOnly: boolean;
    openPrice: boolean;
    minPrice: boolean;
    price: boolean;
    editPrice: boolean;
    unit: boolean;
    costing: boolean;
    tax: boolean;
    variant: boolean;
    maxVariant: number;
    group: boolean;
    overrideProductGroup: boolean;
    inventory: boolean;
    bindToVariant: boolean;
    print: boolean;
    toRoot: boolean;
    takeaway: (category?: string | null | undefined) => boolean;
    multiScheduler: boolean;
    canRearrange: boolean;
    printConfig: boolean;
    takeawayConfig: boolean;
};
export type GroupRules = BaseRules & {
    type: boolean;
    sort: boolean;
    applyProduct: boolean;
    showAppliedProduct: boolean;
    insertRawItems: boolean;
    multiScheduler: boolean;
    linkAddonName?: boolean;
};
export type TakeawayRules = BaseRules & {
    name: boolean;
};
export type CategoryRules = BaseRules & {
    sort: boolean;
    /**
     * Whether the category sequences can be overridden under sub catalogs
     */
    overrideSequence: boolean;
};
export interface MenuRules {
    item: ItemRules;
    category: CategoryRules;
    group: GroupRules;
    scheduler: {
        override: boolean;
    };
    takeaway: TakeawayRules;
    catalog: {
        name: boolean;
        defaultOrderFrom: boolean;
        markup: boolean;
    };
}
