/** * WorksheetReader - Cross-Platform Streaming Worksheet Reader * * Works in both Node.js and Browser. */ import { Column } from "../column.js"; import { Dimensions } from "../range.js"; import { Row } from "../row.js"; import type { InternalWorksheetOptions } from "./workbook-reader.browser.js"; import type { WorksheetState } from "../types.js"; import { EventEmitter } from "../../../utils/event-emitter.js"; /** Hyperlink reference from worksheet XML */ export interface WorksheetHyperlink { ref: string; rId?: string; target?: 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; options?: InternalWorksheetOptions; } declare class WorksheetReader extends EventEmitter { workbook: any; id: number | string; sheetNo: number; iterator: AsyncIterable; options: InternalWorksheetOptions; name: string; state?: WorksheetState; private _columns; private _keys; private _dimensions; hyperlinks?: Record; constructor({ workbook, id, iterator, options }: WorksheetReaderOptions); destroy(): void; get dimensions(): Dimensions; get columns(): Column[]; 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; [Symbol.asyncIterator](): AsyncIterableIterator; parse(): AsyncIterableIterator; } export { WorksheetReader };