/**
 * WorksheetReader - Cross-Platform Streaming Worksheet Reader
 *
 * Works in both Node.js and Browser.
 */
import { EventEmitter } from "../../stream/index.js";
import { Dimensions } from "../range.js";
import { Row } from "../row.js";
import { Column } from "../column.js";
import type { InternalWorksheetOptions } from "./workbook-reader.browser.js";
import type { WorksheetState } from "../types.js";
/** Hyperlink reference from worksheet XML */
export interface WorksheetHyperlink {
    ref: string;
    rId: string;
}
/** Events emitted during worksheet parsing */
export type WorksheetEventType = RowEvent["eventType"] | HyperlinkEvent["eventType"];
/** Row event emitted during parsing */
export interface RowEvent {
    eventType: "row";
    value: Row;
}
/** Hyperlink event emitted during parsing */
export interface HyperlinkEvent {
    eventType: "hyperlink";
    value: WorksheetHyperlink;
}
export type WorksheetEvent = RowEvent | HyperlinkEvent;
export interface WorksheetReaderOptions {
    workbook: any;
    id: number;
    iterator: AsyncIterable<unknown>;
    options?: InternalWorksheetOptions;
}
declare class WorksheetReader extends EventEmitter {
    workbook: any;
    id: number | string;
    sheetNo: number;
    iterator: AsyncIterable<unknown>;
    options: InternalWorksheetOptions;
    name: string;
    state?: WorksheetState;
    private _columns;
    private _keys;
    private _dimensions;
    hyperlinks?: Record<string, WorksheetHyperlink>;
    constructor({ workbook, id, iterator, options }: WorksheetReaderOptions);
    destroy(): void;
    get dimensions(): Dimensions;
    get columns(): Column[] | null;
    getColumn(c: string | number): Column;
    getColumnKey(key: string): Column | undefined;
    setColumnKey(key: string, value: Column): void;
    deleteColumnKey(key: string): void;
    eachColumnKey(f: (column: Column, key: string) => void): void;
    read(): Promise<void>;
    [Symbol.asyncIterator](): AsyncIterableIterator<Row>;
    parse(): AsyncIterableIterator<WorksheetEvent[]>;
}
export { WorksheetReader };
