import type { WorkBook, WorkSheet } from 'xlsx';
import type { RevisionIdMeta } from '@feedmepos/inventory-core';
export declare enum ReservedSheetNames {
    Ingredients = "Ingredients"
}
export interface ClosingItemRow {
    code?: string;
    name?: string;
    /** abbrev for base unit or measurement unit */
    unit: string;
    enabled: boolean;
}
export interface TemplateInfo {
    id: string;
    name: string;
    reference: string;
    locations: string[];
}
export interface ImportCreateResult {
    type: 'create';
    template: Omit<FdoClosingTemplate, '_id'>;
    excelSheetName: string;
    errors: string[];
}
export interface ImportUpdateResult {
    type: 'update';
    original: FdoClosingTemplate;
    template: FdoClosingTemplate & RevisionIdMeta;
    excelSheetName: string;
    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 templateItemToExcelRow(item: FdoClosingTemplateItem): ClosingItemRow[];
export type ColIdHeader<T> = {
    id: keyof T;
    name: string;
};
export declare function getExcelHeaders(): ColIdHeader<ClosingItemRow>[];
export declare function exportTemplates(templates: FdoClosingTemplate[]): string;
/**
 * Export a single template optimized for A4 printing
 * Includes: Template name, SKU list with index, code, name, and UOM columns with borders
 */
export declare function exportSingleTemplateForPrint(template: FdoClosingTemplate): string;
export declare function exportImportTemplate(): string;
/** @returns empty array if for all locations */
export declare function extractLocations(locationRow: string[]): {
    location?: FdoInventoryLocation;
    errors: string[];
}[];
export declare function worksheetToTemplateMeta(sheet: WorkSheet): TemplateInfo;
export declare function worksheetToSkuRow(sheet: WorkSheet): ObjectWithIndex<ClosingItemRow>[];
export declare function getSkuToCreateUpdate(workbook: WorkBook): ImportResult;
