import * as VTable from '@visactor/vtable';
import type { MasterDetailPluginOptions } from './types';
import type { pluginsDefinition } from '@visactor/vtable';
export declare class MasterDetailPlugin implements pluginsDefinition.IVTablePlugin {
    id: string;
    name: string;
    runTime: ("sort_click" | "after_sort" | "before_init" | "initialized" | "after_update_cell_content_width" | "after_update_select_border_height")[];
    pluginOptions: MasterDetailPluginOptions;
    table: VTable.ListTable;
    private configManager;
    private eventManager;
    private subTableManager;
    private tableAPIExtensions;
    private resizeObserver?;
    private checkboxCascadeCleanup;
    constructor(pluginOptions?: MasterDetailPluginOptions);
    run(...args: unknown[]): boolean | void;
    private initializeManagers;
    private setupMasterDetailFeatures;
    private mainTableClickHandler?;
    private setupUnifiedSelectionManagement;
    private initCheckboxCascade;
    private initInternalProps;
    private extendTableAPI;
    private updateOriginalHeightsAfterAdaptive;
    private restoreExpandedStatesAfter;
    expandRow(rowIndex: number, colIndex?: number): void;
    private handleAutoHeightUpdate;
    collapseRow(rowIndex: number, colIndex?: number): void;
    private collapseRowToNoRealRecordIndex;
    toggleRowExpand(rowIndex: number, colIndex?: number): void;
    private updateRowHeightForExpand;
    private drawUnderlineForRow;
    private getRowCells;
    private addUnderlineToCell;
    private removeUnderlineFromRow;
    private removeUnderlineFromCell;
    private refreshRowIcon;
    setRecordChildren(children: unknown[], col: number, row: number): void;
    release(): void;
    private clearAllSubTableVisibleSelections;
    getAllSubTableInstances(): Map<number, VTable.ListTable> | null;
    getSubTableByRowIndex(rowIndex: number): VTable.ListTable | null;
    getSubTableByBodyRowIndex(bodyRowIndex: number): VTable.ListTable | null;
    filterSubTables(predicate: (bodyRowIndex: number, subTable: VTable.ListTable, record?: unknown) => boolean): Array<{
        bodyRowIndex: number;
        subTable: VTable.ListTable;
        record?: unknown;
    }>;
    private updateFrozenColumnShadowHeight;
    private cleanupMasterDetailFeatures;
}
