/** * ExcelJSRenderer * * Renderer adapter for Excel (.xlsx) generation using ExcelJS. * Extends BaseRendererAdapter. * * **Supported Formats**: EXCEL (.xlsx) * * **Pros**: * - Native Excel generation * - Full Excel features (formulas, charts, styles) * - No HTML/browser required * - Fast and lightweight * * **Use Cases**: * - Transaction reports * - Invoice lists * - Financial statements * - Data exports * - Analytics dashboards */ import { type StorageRenderOptions, type StorageRenderResult, type StorageRendererHealthCheck, type StorageExcelJSRendererConfig } from '@plyaz/types/storage'; import { BaseRendererAdapter } from '../base/BaseRendererAdapter'; /** * ExcelJSRenderer Adapter * * Generates Excel files from structured data. * * @example * ```typescript * const renderer = new ExcelJSRenderer({ * name: 'exceljs-main', * type: STORAGE_RENDERER_TYPE.EXCELJS, * enabled: true, * priority: 100, * supportedFormats: [OUTPUT_FORMAT.EXCEL] * }); * * const result = await renderer.render({ * format: OUTPUT_FORMAT.EXCEL, * data: { * sheets: [{ * name: 'Transactions', * data: [ * { date: '2025-01-01', amount: 1000, description: 'Payment' }, * { date: '2025-01-02', amount: 500, description: 'Refund' } * ] * }] * }, * excelOptions: { * sheetName: 'Report', * freezeHeader: true, * autoFilter: true * } * }); * ``` */ export declare class ExcelJSRenderer extends BaseRendererAdapter { private readonly defaultOptions; constructor(config: StorageExcelJSRendererConfig); /** * Render content */ render(options: StorageRenderOptions): Promise; /** * Generate Excel file using ExcelJS * @private */ private generateExcel; /** * Get Excel data from options * @private */ private getExcelData; /** * Check renderer health */ checkHealth(): Promise; }