import { SheetExcelOption } from '../common/types/common-type.js';
import * as exceljs from 'exceljs';
import { CellReportOptions, SheetReportOptions } from '../common/types/report-template.type.js';
import { ExcelTemplateManager } from '../common/core/Template.js';

type FilterGroupCellDescOpts = "header" | "table" | "footer";
declare class ExceljsExporterHelper {
    templateManager: ExcelTemplateManager<CellReportOptions>;
    useStyle: boolean;
    constructor(templateManager: ExcelTemplateManager<CellReportOptions>, useStyle?: boolean);
    filterGroupCellDesc(opts: FilterGroupCellDescOpts, sheetIndex: number): CellReportOptions[] | null;
    getSheetInformation(): Omit<SheetExcelOption<CellReportOptions>, "cells">;
    setCell(rowData: any, cellOpt: CellReportOptions, cell: exceljs.Cell): exceljs.Cell;
    setTitleTable(cellsOpts: CellReportOptions[], workSheet: exceljs.Worksheet): exceljs.Row[];
    addRow(value: any, cellsOpts: CellReportOptions[], workSheet: exceljs.Worksheet): exceljs.Row;
    addRows(values: any[], cellsOpts: CellReportOptions[], workSheet: exceljs.Worksheet): exceljs.Row[];
    setHeader(header: any, cellsOpts: CellReportOptions[], beginTableAt: number, workSheet: exceljs.Worksheet): exceljs.Row[];
    setFooter(value: any, cellsOpts: CellReportOptions[], workSheet: exceljs.Worksheet): exceljs.Row[];
    mergeCells(sheet: exceljs.Worksheet, sheetFormat: Omit<SheetReportOptions, "cells">): void;
    setWidthsAndHeights(sheet: exceljs.Worksheet, sheetFormat: Omit<SheetReportOptions, "cells">): void;
}

export { ExceljsExporterHelper };
