import type { EnhancedModifier, EnhancedModifierGroup } from '@wix/headless-restaurants-menus/services'; import { AvailabilityStatus, AvailabilityStatusMap, FutureAvailability, RuleType, RuleTypeMap } from './common-types.js'; interface ruleUtilsArgs { required: boolean; minSelections: number; maxSelections?: number | null; } export declare const getModifiersInitState: (modifierGroups: EnhancedModifierGroup[], editingItemMode?: boolean, editItemSelectedModifiers?: Record>) => Record; export declare const isSingleSelectRule: (rule: NonNullable) => boolean | null | undefined; export declare const getFirstPreSelectedModifier: (modifiers: EnhancedModifier[]) => string | null | undefined; export declare const getPreSelectedModifiers: (modifiers: EnhancedModifier[]) => string[]; export declare const convertModifierToFormModifier: (modifier: EnhancedModifier, index: number) => { _id: string; revision?: string | null; _createdDate?: Date | null; _updatedDate?: Date | null; name?: string | null; extendedFields?: import("@wix/auto_sdk_restaurants_item-modifiers").ExtendedFields; inStock?: boolean | null; businessLocationIds?: string[]; additionalChargeInfo?: { additionalCharge?: string; formattedAdditionalCharge?: string; }; preSelected?: boolean; }; export declare const getModifierGroupRuleType: (modifierGroupRule: EnhancedModifierGroup["rule"]) => RuleType; export declare const hasNoLimit: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const canChooseOne: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const hasToChooseOne: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const hasToChooseX: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean | 0 | null | undefined; export declare const hasToChooseAtLeastOne: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const hasToChooseAtLeastX: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const chooseUpToX: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const hasToChooseBetweenXAndY: ({ required, minSelections, maxSelections, }: ruleUtilsArgs) => boolean; export declare const getRuleTypeMapValue: (ruleTypeMap: RuleTypeMap, ruleType: RuleType, rule: EnhancedModifierGroup["rule"]) => string | undefined; export declare const checkModifiersValidation: (rule: EnhancedModifierGroup["rule"], selectedCount: number) => boolean; export declare const getModifierGroupErrors: (selectedModifiers: Record>, modifierGroups: EnhancedModifierGroup[]) => { errors: Record; hasError: boolean; }; export declare const getAreNotEnoughModifiersOfMandatoryModifierGroupInStock: (modifierGroups: EnhancedModifierGroup[]) => boolean; export declare const getLineItemModifiers: (selectedModifiers: Record>, modifierGroups: EnhancedModifierGroup[], formatCurrency: (price?: number) => string) => { id: string; modifiers: { id: string; price: string | undefined; formattedPrice: string | undefined; }[]; }[] | undefined; export declare const getPriceVariantOptions: (selectedPriceVariant: { _id?: string | null; priceInfo?: { price?: string; }; } | undefined, formatCurrency: (price?: number) => string) => { id: string; formattedPrice: string; } | undefined; export declare const getSelectedModifierPrices: (selectedModifiers: Record>, modifierGroups: EnhancedModifierGroup[]) => number; export declare const getSelectedVariantPrice: (selectedVariant: { _id?: string | null; } | undefined, priceVariants: Array<{ _id?: string | null; priceInfo?: { price?: string; }; }>) => number; export declare const calculateItemPrice: (basePrice: number, variantPrice: number, modifierPrices: number, quantity: number) => number; export declare const getAvailabilityText: (availabilityStatus: AvailabilityStatus, availabilityStatusObject: AvailabilityStatusMap[AvailabilityStatus], futureAvailability: FutureAvailability) => string | undefined; export {};