import type * as VTable from '@visactor/vtable';
import type { Group } from '@visactor/vtable/src/vrender';
export interface DetailTableOptions extends VTable.ListTableConstructorOptions {
    style?: {
        margin?: number | [number, number] | [number, number, number, number];
        height?: number | 'auto';
    };
}
export interface MasterDetailPluginOptions {
    enableCheckboxCascade?: boolean;
    detailTableOptions?: DetailTableOptions | ((params: {
        data: unknown;
        bodyRowIndex: number;
    }) => DetailTableOptions);
}
export interface SubTableCheckboxState {
    checkedState: Record<string, Record<string | number, boolean | 'indeterminate'>>;
    headerCheckedState: Record<string | number, boolean | 'indeterminate'>;
}
export interface InternalProps {
    expandedRecordIndices: (number | number[])[];
    subTableInstances: Map<number, VTable.ListTable>;
    originalRowHeights: Map<number, number>;
    _tempExpandedRecordIndices?: (number | number[])[];
    subTableCheckboxStates?: Map<number, SubTableCheckboxState>;
}
export interface CellContentWidthEventData {
    col: number;
    row: number;
    distWidth: number;
    cellHeight: number;
    detaX: number;
    autoRowHeight: boolean;
    needUpdateRowHeight: boolean;
    cellGroup: Group;
    padding: [number, number, number, number];
    textAlign: CanvasTextAlign;
    textBaseline: CanvasTextBaseline;
}
export interface SelectBorderHeightEventData {
    startRow: number;
    endRow: number;
    currentHeight: number;
    selectComp: {
        rect: unknown;
        fillhandle?: unknown;
        role: string;
    };
}
export type LazyLoadState = 'loading' | 'loaded' | 'error';
export type RecordIndexType = number | number[];
export declare function recordIndexEquals(a: RecordIndexType, b: RecordIndexType): boolean;
export declare function includesRecordIndex(array: (number | number[])[], target: RecordIndexType): boolean;
export declare function findRecordIndexPosition(array: (number | number[])[], target: RecordIndexType): number;
export interface SubTableEventInfo {
    eventType: keyof typeof VTable.TABLE_EVENT_TYPE;
    masterBodyRowIndex: number;
    masterRowIndex: number;
    subTable: unknown;
    originalEventArgs?: unknown;
}
