import * as VTable from '@visactor/vtable';
import type { DetailTableOptions } from './types';
export declare class SubTableManager {
    private table;
    private enableCheckboxCascade;
    private timers;
    constructor(table: VTable.ListTable, enableCheckboxCascade?: boolean);
    private saveSubTableCheckboxState;
    private restoreSubTableCheckboxState;
    private safeSetTimeout;
    private cleanupAllTimers;
    private updateSubTableCheckboxVisualState;
    renderSubTable(bodyRowIndex: number, childrenData: unknown[], getDetailConfig: (record: unknown, bodyRowIndex: number) => DetailTableOptions | null): void;
    private handleAutoHeightAfterRender;
    private calculateSubTableContentHeight;
    private onAutoHeightCalculated?;
    setAutoHeightCallback(callback: (bodyRowIndex: number, newTotalHeight: number) => void): void;
    private columnRangeCache;
    private getColumnRange;
    private calculateSubTableViewBox;
    removeSubTable(bodyRowIndex: number): void;
    private cleanupSubTableEventHandlers;
    private setupScrollEventIsolation;
    private setupUnifiedSelectionManagement;
    private calculateGroupLevelOffset;
    private isAncestorGroup;
    private setupSubTableCanvasClipping;
    private setupAntiFlickerMechanism;
    updateSubTablePositionsForRowResize(): void;
    recalculateAllSubTablePositions(start?: number, end?: number, getDetailConfig?: (record: unknown, bodyRowIndex: number) => DetailTableOptions | null): void;
    cleanup(): void;
    getAllSubTableInstances(): Map<number, VTable.ListTable> | undefined;
    getSubTableInstance(bodyRowIndex: number): VTable.ListTable | null;
    private getDetailConfigForRecord?;
    setCallbacks(callbacks: {
        getDetailConfigForRecord?: (record: unknown, bodyRowIndex: number) => DetailTableOptions | null;
    }): void;
    private setupSubTableEventForwarding;
    private forwardSubTableEvent;
    private clearMainTableSelectionInternal;
    private clearAllSelectionsExcept;
    private cleanupSubTableEventForwarding;
}
