import { FormulaManager } from '../managers/formula-manager';
import SheetManager from '../managers/sheet-manager';
import { WorkSheet } from '../core/WorkSheet';
import type { IVTableSheetOptions, ISheetDefine, ImportResult } from '../ts-types';
import { FormulaUIManager } from '../formula/formula-ui-manager';
export default class VTableSheet {
    private container;
    private options;
    private sheetManager;
    formulaManager: FormulaManager;
    private eventManager;
    private menuManager;
    private activeWorkSheet;
    workSheetInstances: Map<string, WorkSheet>;
    private formulaAutocomplete;
    formulaUIManager: FormulaUIManager;
    private rootElement;
    private formulaBarElement;
    private sheetTabElement;
    private mainMenuElement;
    private contentElement;
    private dragManager;
    private sheetTabEventHandler;
    constructor(container: HTMLElement, options: IVTableSheetOptions);
    private mergeDefaultOptions;
    private initFormulaAutocomplete;
    private initUI;
    private createSheetTab;
    private _activeSheetTab;
    updateSheetTabs(tabsContainer?: HTMLElement): void;
    private createSheetTabItem;
    updateSheetMenu(): void;
    private initSheets;
    activateSheet(sheetKey: string): void;
    addSheet(sheet: ISheetDefine): void;
    removeSheet(sheetKey: string): void;
    getSheetCount(): number;
    getSheet(sheetKey: string): ISheetDefine | null;
    getAllSheets(): ISheetDefine[];
    private createWorkSheetInstance;
    private loadFormulas;
    private parseCellKey;
    private restoreFilterState;
    private _addNewSheet;
    private updateFormulaBar;
    getFormulaManager(): FormulaManager;
    getSheetManager(): SheetManager;
    getActiveSheet(): WorkSheet | null;
    saveToConfig(): IVTableSheetOptions;
    exportSheetToFile(fileType: 'csv' | 'xlsx'): void;
    importFileToSheet(): Promise<ImportResult | void>;
    getContainer(): HTMLElement;
    getRootElement(): HTMLElement;
    getOptions(): IVTableSheetOptions;
    getFormulaBarElement(): HTMLElement | null;
    getSheetTabElement(): HTMLElement | null;
    getContentElement(): HTMLElement;
    release(): void;
    exportData(sheetKey: string): any[][];
    exportAllData(): any[][];
    resize(): void;
    excludeEditCellFromSelection(range: {
        startRow: number;
        startCol: number;
        endRow: number;
        endCol: number;
    }, editRow: number, editCol: number): {
        startRow: number;
        startCol: number;
        endRow: number;
        endCol: number;
    };
}
