import type { WorkSheet } from 'xlsx';
export interface IngredientSkuRow {
    code: string;
    name: string;
    unit: string;
    baseUnit: string;
    measurementName: string;
    valuationMethod: string;
    pricePerUnit: number;
    thresholdLow: number;
    thresholdMid: number;
    customAttributes?: string;
}
export interface ImportCreateResult {
    type: 'create';
    sku: FdoInventorySku;
    excelRowNumber: number;
    errors: string[];
}
export interface ImportUpdateResult {
    type: 'update';
    original: FdoInventorySku;
    sku: FdoInventorySku;
    excelRowNumber: number;
    errors: string[];
}
export type ImportResult = {
    invalidExcel: boolean;
    invalidExcelMessage?: string;
    importCreateResult: ImportCreateResult[];
    importUpdateResult: ImportUpdateResult[];
};
export type ObjectWithIndex<T> = {
    index: number;
    data: T;
};
export declare const FakeUnit: FdoInventoryUnit;
export declare function customAttributesToString(customAttributes?: Record<string, any> | null): string;
export declare function stringToCustomAttributes(customAttributesStr?: string): Record<string, any> | undefined;
export declare function skuToExcelRow(sku: FdoInventorySku): IngredientSkuRow;
export type ColIdHeader<T> = {
    id: keyof T;
    name: string;
};
export declare function getExcelHeaders(): ColIdHeader<IngredientSkuRow>[];
export declare function exportIngredients(): string;
export declare function exportIngredientsTemplate(): string;
export declare function worksheetToSkuRow(sheet: WorkSheet): ObjectWithIndex<IngredientSkuRow>[];
export declare function importSkuToCreateSku(row: IngredientSkuRow, index: number, parsedContent: ObjectWithIndex<IngredientSkuRow>[], { ignoreErrors }?: {
    ignoreErrors?: boolean;
}): ImportCreateResult;
export declare function getSkuToCreateUpdate(sheet: WorkSheet): ImportResult;
export declare function getSkuToDelete(sheet: WorkSheet): FdoInventorySku[];
