import { FormulaManager } from '../managers/formula-manager';
import SheetManager from '../managers/sheet-manager';
import { WorkSheet } from '../core/WorkSheet';
import type { IVTableSheetOptions, IVTableSheetUpdateOptions, ISheetDefine } from '../ts-types';
import type { MultiSheetImportResult } from '@visactor/vtable-plugins/src/excel-import/types';
import type { TableEventHandlersEventArgumentMap } from '@visactor/vtable/es/ts-types/events';
import { FormulaUIManager } from '../formula/formula-ui-manager';
import type { VTableSheetEventType } from '../ts-types/spreadsheet-events';
import { SpreadSheetEventManager } from '../event/spreadsheet-event-manager';
import { VTableSheetEventBus } from '../event/vtable-sheet-event-bus';
export default class VTableSheet {
    private container;
    private options;
    private sheetManager;
    formulaManager: FormulaManager;
    private eventManager;
    private menuManager;
    private activeWorkSheet;
    workSheetInstances: Map<string, WorkSheet>;
    private formulaAutocomplete;
    private tableEventRelay;
    private spreadsheetEventManager;
    private eventBus;
    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[];
    createWorkSheetInstance(sheetDefine: ISheetDefine): WorkSheet;
    private loadFormulas;
    private parseCellKey;
    private restoreFilterState;
    private _addNewSheet;
    private updateFormulaBar;
    getFormulaManager(): FormulaManager;
    getSpreadSheetEventManager(): SpreadSheetEventManager;
    getEventBus(): VTableSheetEventBus;
    getSheetManager(): SheetManager;
    getActiveSheet(): WorkSheet | null;
    onTableEvent<K extends keyof TableEventHandlersEventArgumentMap>(type: K, callback: (event: TableEventHandlersEventArgumentMap[K] & {
        sheetKey: string;
    }) => void): void;
    offTableEvent(type: string, callback?: (...args: any[]) => void): void;
    onSheetEvent(type: string, callback: (event: any) => void): void;
    offSheetEvent(type: string, callback?: (event: any) => void): void;
    on(type: VTableSheetEventType, callback: (event: any) => void): void;
    off(type: VTableSheetEventType, callback?: (event: any) => void): void;
    getSheetByName(sheetName: string): WorkSheet | null;
    getWorkSheetByKey(sheetKey: string): WorkSheet | null;
    saveToConfig(): IVTableSheetOptions;
    updateMainMenu(mainMenu: IVTableSheetOptions['mainMenu']): void;
    updateOption(options: IVTableSheetUpdateOptions): void;
    private updateSheets;
    exportSheetToFile(fileType: 'csv' | 'xlsx', allSheets?: boolean): void;
    exportAllSheetsToExcel(): void;
    initAllSheetInstances(): void;
    importFileToSheet(options?: {
        clearExisting?: boolean;
    }): Promise<MultiSheetImportResult | 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;
}
