export interface AxisResidentCellIdentity {
    readonly sheetId?: number;
    readonly rowId: string;
    readonly colId: string;
}
export type AxisResidentCellIndexRebuildSource = (callback: (cellIndex: number, identity: AxisResidentCellIdentity) => void) => void;
export declare class AxisResidentCellIndex {
    private readonly rebuildSource?;
    private readonly sheetIds;
    private readonly rowIds;
    private readonly colIds;
    private readonly byRow;
    private readonly byColumn;
    private primaryIndexDirty;
    private secondaryIndexesDirty;
    constructor(rebuildSource?: AxisResidentCellIndexRebuildSource | undefined);
    set(cellIndex: number, identity: AxisResidentCellIdentity): void;
    add(cellIndex: number, identity: AxisResidentCellIdentity): void;
    addDeferred(cellIndex: number, identity: AxisResidentCellIdentity): void;
    addDeferredParts(cellIndex: number, rowId: string, colId: string): void;
    addDenseRowMajorDeferredParts(firstCellIndex: number, rowIds: readonly string[], colIds: readonly string[]): void;
    deferRebuild(): void;
    get(cellIndex: number): AxisResidentCellIdentity | undefined;
    delete(cellIndex: number): boolean;
    clear(): void;
    cellsInRow(rowId: string): number[];
    cellsInColumn(colId: string): number[];
    forEachCellInRow(rowId: string, callback: (cellIndex: number) => void): void;
    forEachCellInColumn(colId: string, callback: (cellIndex: number) => void): void;
    cellsInRows(rowIds: readonly string[]): number[];
    cellsInColumns(colIds: readonly string[]): number[];
    cellsInRowsUnordered(rowIds: readonly string[]): number[];
    cellsInColumnsUnordered(colIds: readonly string[]): number[];
    private ensurePrimaryIndex;
    private ensureSecondaryIndexes;
    private setPrimaryParts;
}
