import { type WorkBook } from "xlsx";
import { type SheetView } from "./excelHelpers";
import { type AllFeatures } from '../features';
/**
 * Parse a statutory metric file and get the underlying workbook object
 *
 * ```ts
// for local files
const workbook =  parseFile("MY_BNG_METRIC.xlsm");
// for in-memory files, like those in a website input field
const workbook = parseFile(await file.arrayBuffer());
```
 * Throws an error when required sheets or column headers are missing/mismatched.
 */
export declare function parseWorkbook(file: string | ArrayBuffer): WorkBook;
/**
 * Parse a statutory metric file and to get all parsed rows
 *
 * ```ts
// for local files
const localResults =  parseFile("MY_BNG_METRIC.xlsm");
// for in-memory files, like those in a website input field
const results = parseFile(await file.arrayBuffer());
```
 * Throws an error when the metric version is unsupported.
 */
export interface ParseFileOptions {
    /**
     * When true (default), every row is run through the full validating schema
     * (`v.check` business-logic guards included) and the first failure throws.
     *
     * When false, business-logic checks are skipped: each row passes through
     * the input shape parser (so picklists and field types are still parsed)
     * and then through the same enrichment/calculation transforms. If a
     * transform throws (e.g. an unknown habitat lookup), the row is passed on
     * with whatever fields had already been computed; downstream unit values
     * for that row will be `undefined`. Other rows are unaffected.
     *
     * Rows whose input shape itself can't be parsed (e.g. an unrecognised
     * picklist value) are logged and skipped.
     */
    validate?: boolean;
}
export declare function parseFile(file: string | ArrayBuffer, options?: ParseFileOptions): AllFeatures;
export default parseFile;
/**
 * Find all data rows in a sheet
 */
export declare function findAllDataRows(sheet: SheetView, columnToCheckPresence: number, startRow?: number, maxRows?: number): number[];
//# sourceMappingURL=parseFile.d.ts.map