import type { EngineCounters } from './perf/engine-counters.js';
import type { WorkbookSheetDeletionMetadataContext, WorkbookSheetReorderMetadataContext } from './workbook-metadata-service-contract.js';
import type { WorkbookMetadataRecord } from './workbook-metadata-types.js';
import { type SheetRecord } from './workbook-sheet-record.js';
export declare class WorkbookSheetRegistryStore {
    private readonly options;
    private nextSheetId;
    constructor(options: {
        readonly sheetsByName: Map<string, SheetRecord>;
        readonly sheetsById: Map<number, SheetRecord>;
        readonly metadata: WorkbookMetadataRecord;
        readonly counters: EngineCounters | undefined;
        readonly cellKeyToIndex: Map<number, number>;
        readonly cellFormats: Map<number, string>;
        readonly getCellPosition: (cellIndex: number) => {
            sheetId: number;
            row: number;
            col: number;
        } | undefined;
        readonly deleteSheetRecords: (sheetName: string, context?: WorkbookSheetDeletionMetadataContext) => void;
        readonly reorderSheetRecords: (context: WorkbookSheetReorderMetadataContext) => void;
        readonly renameSheetRecords: (oldName: string, nextName: string) => void;
    });
    createSheet(name: string, order?: number, id?: number): SheetRecord;
    moveSheet(name: string, order: number): SheetRecord | undefined;
    deleteSheet(name: string): void;
    renameSheet(oldName: string, nextName: string): SheetRecord | undefined;
    renameSheetById(sheetId: number, trimmedName: string): SheetRecord | undefined;
    renameSheetByIdTrustedPrevalidated(sheetId: number, oldName: string, trimmedName: string): SheetRecord | undefined;
    private renameExistingSheet;
    getSheet(name: string): SheetRecord | undefined;
    getSheetById(id: number): SheetRecord | undefined;
    getOrCreateSheet(name: string): SheetRecord;
    getSheetNameById(id: number): string;
    getSheetColumnVersion(sheetName: string, col: number): number;
    getSheetStructureVersion(sheetName: string): number;
    reset(): void;
    private bumpSheetId;
    private moveExistingSheet;
}
