import type { WorkSheet } from 'xlsx';
export type ObjectWithIndex<T> = {
    index: number;
    data: T;
};
export interface RecipeRow {
    recipeName: string;
    type: 'RECIPE' | 'INGREDIENT' | 'SKU_GROUP';
    code: string;
    name: string;
    amount: string;
    unit: string;
    baseUnit: string;
    measurementName: string;
    customAttributes?: string;
}
export interface RecipeContainsRow {
    type: 'RECIPE' | 'SKU' | 'SKU_GROUP';
    id: string;
    amount: {
        amount: number;
        precision: number;
    };
}
export interface ImportRecipeCreateResult {
    type: 'create';
    recipe: FdoInventoryRecipe;
    excelRowNumber: number;
    errors: string[];
}
export interface ImportRecipeUpdateResult {
    type: 'update';
    original: FdoInventoryRecipe;
    recipe: FdoInventoryRecipe;
    excelRowNumber: number;
    errors: string[];
}
export interface RecipeImportResult {
    invalidExcel: boolean;
    invalidExcelMessage?: string;
    importCreateResult?: ImportRecipeCreateResult[];
    importUpdateResult?: ImportRecipeUpdateResult[];
}
export declare function newRecipeId(): string;
export declare function importExcelToCreateRecipes(rows: ObjectWithIndex<RecipeRow>[], { ignoreErrors }?: {
    ignoreErrors?: boolean;
}): RecipeImportResult;
export declare function worksheetToRecipeRow(sheet: WorkSheet): ObjectWithIndex<RecipeRow>[];
