/** * Workbook - Node.js Version * * Extends browser Workbook with Node.js file system support for CSV and Markdown operations. */ import { type WorkbookReaderOptions, type NodeInput } from "./stream/workbook-reader.js"; import type { WorkbookReader as WorkbookReaderBrowser } from "./stream/workbook-reader.browser.js"; import { type WorkbookWriterOptions } from "./stream/workbook-writer.js"; import type { WorkbookWriter as WorkbookWriterBrowser } from "./stream/workbook-writer.browser.js"; import { Workbook as WorkbookBrowser, type CsvOptions } from "./workbook.browser.js"; import type { Worksheet } from "./worksheet.js"; import { XLSX } from "./xlsx/xlsx.js"; import type { MarkdownOptions } from "../markdown/types.js"; declare class Workbook extends WorkbookBrowser { private _xlsxNode?; /** * xlsx file format operations — Node.js variant. Exposes the * `readFile` / `writeFile` / streaming `read` / `write` methods that * the browser XLSX omits. Overriding here (rather than typing the * base getter as Node XLSX directly) keeps the browser * `Workbook.xlsx` type clean — browser consumers see only the * operations the bundle actually supports and get a TS error if * they accidentally reach for file-path APIs. */ get xlsx(): XLSX; /** * Create a streaming workbook writer — Node.js variant. Accepts the * Node-only `{ filename }` option for direct file-path output in * addition to the cross-platform `{ stream }` option. Overriding * here (rather than typing the base factory as the Node writer) * keeps the browser bundle free of Node-only stream code. * * The return type is declared as the browser `WorkbookWriter` to * preserve static-side Liskov compatibility with the base class; * downcast at the call site if the Node subclass API is needed, or * use `new WorkbookWriter()` directly. */ static createStreamWriter(options?: WorkbookWriterOptions): WorkbookWriterBrowser; /** * Create a streaming workbook reader — Node.js variant. Accepts a * Node-only file-path `string` in addition to the cross-platform * `CommonInput` types (buffer / readable). Overriding here keeps the * browser bundle free of Node-only `fs` imports. * * The return type is declared as the browser `WorkbookReader` to * preserve static-side Liskov compatibility with the base class. * The runtime instance is the Node `WorkbookReader` subclass and * handles file-path inputs transparently; downcast if the subclass * API is needed, or use `new WorkbookReader()` directly. */ static createStreamReader(input: NodeInput, options?: WorkbookReaderOptions): WorkbookReaderBrowser; /** * Read CSV from file (Node.js only) * * @example * ```ts * await workbook.readCsvFile("data.csv"); * await workbook.readCsvFile("data.csv", { delimiter: ";", sheetName: "Data" }); * ``` */ readCsvFile(filename: string, options?: CsvOptions): Promise; /** * Write CSV to file (Node.js only) * * @example * ```ts * await workbook.writeCsvFile("output.csv"); * await workbook.writeCsvFile("output.csv", { delimiter: ";", sheetName: "Data" }); * await workbook.writeCsvFile("output.csv", { append: true }); // Append mode * ``` */ writeCsvFile(filename: string, options?: CsvOptions): Promise; /** * Read Markdown table from file (Node.js only) * * @example * ```ts * await workbook.readMarkdownFile("table.md"); * await workbook.readMarkdownFile("table.md", { sheetName: "Data" }); * ``` */ readMarkdownFile(filename: string, options?: MarkdownOptions): Promise; /** * Read all Markdown tables from file, each as a separate worksheet (Node.js only) * * @example * ```ts * await workbook.readMarkdownAllFile("doc.md"); * await workbook.readMarkdownAllFile("doc.md", { sheetName: "Table" }); * ``` */ readMarkdownAllFile(filename: string, options?: MarkdownOptions): Promise; /** * Write Markdown table to file (Node.js only) * * @example * ```ts * await workbook.writeMarkdownFile("output.md"); * await workbook.writeMarkdownFile("output.md", { sheetName: "Data", padding: true }); * ``` */ writeMarkdownFile(filename: string, options?: MarkdownOptions): Promise; } export { Workbook }; export type { CsvOptions, CsvInput, WorkbookModel, WorkbookMedia, WorkbookProtectionModel, ExternalLinkModel, ExternalLinkCachedSheet } from "./workbook.browser.js"; export type { AddChartsheetOptions, AddPivotChartsheetOptions, ChartsheetOptions, ChartsheetViewOptions } from "./chartsheet.js";