import BaseType from './_base'; /** * A cell value that ExcelJS accepts: a primitive, a formula object, or null. */ type ExcelCellValue = string | number | boolean | null | undefined | { formula: string; result?: string | number | boolean | null; } | { sharedFormula: string; result?: string | number | boolean | null; }; interface ExcelJsCell { value: ExcelCellValue; numFmt: string; alignment: object; border: object; font: object; fill: object; protection: { locked: boolean; }; dataValidation: object; note: string; } interface ExcelJsRow { getCell(colNumber: number): ExcelJsCell; height: number; hidden: boolean; commit(): void; } interface ExcelJsColumn { width: number; hidden: boolean; } interface ExcelJsView { rightToLeft?: boolean; state?: string; xSplit?: number; ySplit?: number; } interface ExcelJsWorksheet { getRow(rowNumber: number): ExcelJsRow; getColumn(colNumber: number): ExcelJsColumn; getCell(rowNumber: number, colNumber: number): ExcelJsCell; mergeCells(startRow: number, startCol: number, endRow: number, endCol: number): void; addConditionalFormatting(descriptor: { ref: string; rules: unknown[]; }): void; protect(password: string, options?: Record): void; state: string; views: ExcelJsView[]; } interface ExcelJsWorkbook { addWorksheet(name: string): ExcelJsWorksheet; worksheets: Array<{ name: string; }>; xlsx: { writeBuffer(options?: object): Promise; }; } /** * One entry in the `conditionalFormatting` option array. */ interface ConditionalFormattingDescriptor { rows?: [number, number]; cols?: [number, number]; rules: unknown[]; } interface XlsxEngine { Workbook: new () => ExcelJsWorkbook; } /** * @private */ declare class Xlsx extends BaseType { #private; /** * Marks this formatter as binary (non-stringifiable). * * @returns {boolean} */ static get BINARY(): boolean; /** * Returns true to indicate that XLSX data should be treated as binary output. */ get binary(): boolean; /** * Default options for exporting XLSX format. * * @returns {object} */ static get DEFAULT_OPTIONS(): { mimeType: string; fileExtension: string; bom: boolean; engine: XlsxEngine | null; compression: boolean | number | null; conditionalFormatting: ConditionalFormattingDescriptor[]; exportFormulas: boolean; headerStyle: { backgroundColor: string; border: { style: string; }; } | null; }; /** * Builds an XLSX workbook and returns its binary buffer. * * When the `sheets` option is provided the workbook contains one worksheet per entry, * each driven by its own Handsontable instance. Otherwise a single worksheet named * `'Sheet1'` is produced from the primary DataProvider. * * @returns {Promise} */ export(): Promise; } export default Xlsx;