import type * as VTable from '@visactor/vtable'; import type { Group } from '@visactor/vtable'; export interface DetailTableOptions extends VTable.ListTableConstructorOptions { style?: { margin?: number | [number, number] | [number, number, number, number]; height?: number | 'auto'; }; } export interface MasterDetailPluginOptions { enableCheckboxCascade?: boolean; childrenKey?: string; detailTableOptions?: DetailTableOptions | ((params: { data: unknown; bodyRowIndex: number; }) => DetailTableOptions); } export interface SubTableCheckboxState { checkedState: Record>; headerCheckedState: Record; } export interface InternalProps { expandedRecordIndices: (number | number[])[]; subTableInstances: Map; originalRowHeights: Map; _tempExpandedRecordIndices?: (number | number[])[]; subTableCheckboxStates?: Map; } 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; }