import XLSX from 'xlsx';
/**
 * Maximum number of rows to process in Excel sheets
 */
export declare const MAX_DATA_ROWS = 200;
/**
 * Backend-agnostic view onto a sheet. Implementations only have to return
 * the cell value at a given (row, col) — letter or 0-indexed integer for col.
 */
export interface SheetView {
    getCell(row: number, col: number): string | number | boolean | null;
}
/** Wrap a SheetJS WorkSheet as a SheetView so the rest of the parser stays backend-agnostic. */
export declare function sheetJsView(sheet: XLSX.WorkSheet): SheetView;
export declare function getSheet(workbook: XLSX.WorkBook, sheetName: string): XLSX.WorkSheet | undefined;
/**
 * Helper function to get cell value. Accepts either a SheetView (preferred,
 * used by the streaming path) or a SheetJS WorkSheet (back-compat).
 */
export declare function getCellValue(sheet: SheetView | XLSX.WorkSheet, row: number | string, col: number | string): any;
/**
 * Helper to convert Excel true/false to boolean
 */
export declare function parseBoolean(value: any): boolean;
/**
 * Helper to normalize numeric values for comparison (handles floating point precision)
 */
export declare function normalizeNumber(value: any): number;
/**
 * Normalise a years cell. Returns a non-negative integer or the literal "30+",
 * defaulting to 0 for empty/non-numeric cells.
 */
export declare function normalizeYears(value: any): number | "30+";
/**
 * Find a specific row in a sheet by matching a value in a given column
 */
export declare function findRow(sheet: SheetView | XLSX.WorkSheet, columnToCheckPresence: number, value: unknown, maxRows?: number): number | null;
//# sourceMappingURL=excelHelpers.d.ts.map