import type { FdoDecimal } from '@feedmepos/core/entity'; import type { BindingChange, RecipeBulkEditEntry } from '../helper/bulk-edit-simulation.helper'; import { type FmUnitInputModel } from '@/components/FmUnitInputProps'; export type FilterEntryType = 'ingredient' | 'recipe'; export interface FilterEntryIngredient { id: string; type: 'ingredient'; itemId: string; amount?: FdoDecimal | null; measurementId?: string | null; } export interface FilterEntryRecipe { id: string; type: 'recipe'; itemId: string; } export type FilterEntry = FilterEntryIngredient | FilterEntryRecipe; export interface FilterRow { id: string; type: FilterEntryType | null; itemId: string | null; amountModel: FmUnitInputModel; } export declare function makeFilterRow(type?: FilterEntryType | null): FilterRow; export interface RecipeBulkEditQueryV2 { nameSearch?: string; filters: FilterEntry[]; } export declare const useRecipeBulkEditor: import("pinia").StoreDefinition<"recipeBulkEditor", import("pinia")._UnwrapAll; currentStep: import("vue").Ref; query: import("vue").Ref<{ nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null, RecipeBulkEditQueryV2 | { nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null>; excludedRecipeIds: import("vue").Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; modifications: import("vue").Ref<({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[], BindingChange[] | ({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[]>; entries: import("vue").Ref, Record>; isSaving: import("vue").Ref; applyErrors: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; nameSearch: import("vue").Ref; filterRows: import("vue").Ref<{ id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[], FilterRow[] | { id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[]>; matchedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; selectedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; livePreviewEntries: import("vue").ComputedRef>; canGoToStep2: import("vue").ComputedRef; canGoToStep3: import("vue").ComputedRef; openDialog: () => void; closeDialog: () => void; reset: () => void; updateQuery: (q: RecipeBulkEditQueryV2) => void; removeRecipe: (recipeId: string) => void; restoreAllRecipes: () => void; addModification: (change: BindingChange) => void; updateModification: (index: number, change: BindingChange) => void; removeModification: (index: number) => void; reorderModification: (from: number, to: number) => void; goToStep3: () => void; backToStep2: () => void; buildPayload: () => FdoInventoryRecipe[]; confirmAndApply: () => Promise; }, "entries" | "currentStep" | "show" | "isSaving" | "applyErrors" | "query" | "nameSearch" | "excludedRecipeIds" | "modifications" | "filterRows">>, Pick<{ show: import("vue").Ref; currentStep: import("vue").Ref; query: import("vue").Ref<{ nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null, RecipeBulkEditQueryV2 | { nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null>; excludedRecipeIds: import("vue").Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; modifications: import("vue").Ref<({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[], BindingChange[] | ({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[]>; entries: import("vue").Ref, Record>; isSaving: import("vue").Ref; applyErrors: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; nameSearch: import("vue").Ref; filterRows: import("vue").Ref<{ id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[], FilterRow[] | { id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[]>; matchedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; selectedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; livePreviewEntries: import("vue").ComputedRef>; canGoToStep2: import("vue").ComputedRef; canGoToStep3: import("vue").ComputedRef; openDialog: () => void; closeDialog: () => void; reset: () => void; updateQuery: (q: RecipeBulkEditQueryV2) => void; removeRecipe: (recipeId: string) => void; restoreAllRecipes: () => void; addModification: (change: BindingChange) => void; updateModification: (index: number, change: BindingChange) => void; removeModification: (index: number) => void; reorderModification: (from: number, to: number) => void; goToStep3: () => void; backToStep2: () => void; buildPayload: () => FdoInventoryRecipe[]; confirmAndApply: () => Promise; }, "canGoToStep2" | "canGoToStep3" | "matchedRecipes" | "selectedRecipes" | "livePreviewEntries">, Pick<{ show: import("vue").Ref; currentStep: import("vue").Ref; query: import("vue").Ref<{ nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null, RecipeBulkEditQueryV2 | { nameSearch?: string | undefined; filters: ({ id: string; type: 'ingredient'; itemId: string; amount?: { amount: number; precision: number; } | null | undefined; measurementId?: string | null | undefined; } | { id: string; type: 'recipe'; itemId: string; })[]; } | null>; excludedRecipeIds: import("vue").Ref & Omit, keyof Set>, Set | (Set & Omit, keyof Set>)>; modifications: import("vue").Ref<({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[], BindingChange[] | ({ type: "replace-binding"; from: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; to: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "remove-binding"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; } | { type: "add-binding"; binding: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }; } | { type: "update-binding-rule"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; rule: Record | null; } | { type: "update-alternatives"; target: { type: "RECIPE" | "SKU" | "SKU_GROUP"; id: string; amount?: { amount: number; precision: number; } | undefined; measurementId?: string | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | undefined; }; alternatives: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[]; })[]>; entries: import("vue").Ref, Record>; isSaving: import("vue").Ref; applyErrors: import("vue").Ref & Omit, keyof Map>, Map | (Map & Omit, keyof Map>)>; nameSearch: import("vue").Ref; filterRows: import("vue").Ref<{ id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[], FilterRow[] | { id: string; type: FilterEntryType | null; itemId: string | null; amountModel: { amount: { amount: number; precision: number; }; measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; }; }[]>; matchedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; selectedRecipes: import("vue").ComputedRef<{ customAttributes?: Record | null | undefined; version?: "v2" | null | undefined; _id: string; name: string; contains: { measurement?: { name: string; id: string; abbrev: string; conversion: { amount: number; precision: number; }; } | null | undefined; rules?: Record | null | undefined; alternatives?: { default?: boolean | null | undefined; trackingMeasurement?: string | null | undefined; priority?: number | null | undefined; _id: string; }[] | null | undefined; type: "RECIPE" | "SKU" | "SKU_GROUP"; amount: { amount: number; precision: number; }; id: string; }[]; }[]>; livePreviewEntries: import("vue").ComputedRef>; canGoToStep2: import("vue").ComputedRef; canGoToStep3: import("vue").ComputedRef; openDialog: () => void; closeDialog: () => void; reset: () => void; updateQuery: (q: RecipeBulkEditQueryV2) => void; removeRecipe: (recipeId: string) => void; restoreAllRecipes: () => void; addModification: (change: BindingChange) => void; updateModification: (index: number, change: BindingChange) => void; removeModification: (index: number) => void; reorderModification: (from: number, to: number) => void; goToStep3: () => void; backToStep2: () => void; buildPayload: () => FdoInventoryRecipe[]; confirmAndApply: () => Promise; }, "reset" | "openDialog" | "closeDialog" | "goToStep3" | "confirmAndApply" | "updateQuery" | "removeRecipe" | "restoreAllRecipes" | "addModification" | "updateModification" | "removeModification" | "reorderModification" | "backToStep2" | "buildPayload">>;