import { BaseAttribute, SheetExcelOption } from '../types/common-type.cjs';

interface IExcelTemplateManager<T extends BaseAttribute> {
    get<K>(index: number): K;
    get<K>(key: string): K;
    add(cell: T): void;
    add(cell: T[]): void;
    update(index: number, cell: T): void;
    update(key: string, cell: T): void;
    remove(index: number): void;
    remove(key: string): void;
}
declare class ExcelTemplateManager<T extends BaseAttribute> implements IExcelTemplateManager<T> {
    private actualTableStartRow?;
    private actualTableEndRow?;
    private sheets;
    private currentSheetIndex;
    private groupCells;
    private isNullTemplate;
    constructor(templatePath?: string);
    get ActualTableStartRow(): number | undefined;
    get ActualTableEndRow(): number | undefined;
    defineActualTableStartRow(actualTableStartRow?: number): void;
    defineActualTableEndRow(actualTableEndRow?: number): void;
    set SheetIndex(sheetIndex: number);
    get SheetInformation(): Omit<SheetExcelOption<T>, "cells">;
    get SheetTemplate(): SheetExcelOption<T>;
    get Sheets(): SheetExcelOption<T>[];
    get GroupCells(): {
        header: T[];
        table: T[];
        footer: T[];
    };
    get<K>(index: number): K;
    get<K>(key: string): K;
    add(cell: T): void;
    add(cell: T[]): void;
    update(index: number, cell: T): void;
    update(key: string, cell: T): void;
    remove(index: number): void;
    remove(key: string): void;
    private findIndexByKeyName;
    private getTemplate;
    protected formatSheet(): any;
}

export { ExcelTemplateManager, type IExcelTemplateManager };
