import type { ISheetManager, IWorkSheetAPI } from '../ts-types/sheet';
import type { ISheetDefine } from '../ts-types';
import type { VTableSheetEventBus } from '../event/vtable-sheet-event-bus';
export default class SheetManager implements ISheetManager {
    _sheets: Map<string, ISheetDefine>;
    _activeSheetKey: string;
    private eventBus;
    constructor(eventBus: VTableSheetEventBus);
    getEventBus(): VTableSheetEventBus;
    getActiveSheet(): ISheetDefine | null;
    setActiveSheet(sheetKey: string): void;
    addSheet(sheet: ISheetDefine): void;
    removeSheet(sheetKey: string): string;
    renameSheet(sheetKey: string, newTitle: string): void;
    getAllSheets(): ISheetDefine[];
    sortSheets(sheets: ISheetDefine[]): void;
    getSheet(sheetKey: string): ISheetDefine | null;
    getSheetCount(): number;
    getSheetAPI(sheetKey: string): IWorkSheetAPI | null;
    onSheetChange(callback: (sheets: ISheetDefine[]) => void): void;
    offSheetChange(callback: (sheets: ISheetDefine[]) => void): void;
    onActiveSheetChange(callback: (sheet: ISheetDefine) => void): void;
    offActiveSheetChange(callback: (sheet: ISheetDefine) => void): void;
    reorderSheet(sourceKey: string, targetKey: string, position: 'left' | 'right'): void;
}
