import { ComputedRef, InjectionKey, ModelRef, Ref, ToRefs } from 'vue'; import { TableRowT } from '../table'; import { DataTablePropsT, DataTableRowKeyValue, EffectiveDataTableColumnT } from './types'; export type DataTableRowKeyMap = Map; export type DataTableLoadChildrenPayload = { row: TableRowT; rowIndex: number; rowKey: DataTableRowKeyValue; resolve: () => void; reject: (reason?: any) => void; }; export type DataTableCtx = ToRefs & { getRowKey: (row: TableRowT, rowIndex: number) => DataTableRowKeyValue; containerWidth: Ref; dataColumnMap: Map; dataColumns: Ref; groupColumns: Ref; hasExpandSlot: ComputedRef; expandedRowKeys: ModelRef; isBodyCellRemoved: (rowIndex: number, colIndex: number) => boolean; isLastLeftFixedCell: (rowIndex: number, colIndex: number) => boolean; isFirstRightFixedCell: (rowIndex: number, colIndex: number) => boolean; selectedKeys: ModelRef; rowKeyMap: ComputedRef; allRowKeys: ComputedRef; toFilteredSelectable: (arr: DataTableRowKeyValue[]) => DataTableRowKeyValue[]; handleTableSelection: (key: DataTableRowKeyValue, newVal: DataTableRowKeyValue[]) => void; handleLoadChildren: (payload: DataTableLoadChildrenPayload) => void; }; export declare const dataTableInjectKey: InjectionKey; export type DataTableRowCtx = { /** 当前层级是否可以展开 */ isLevelExpandable: ComputedRef<{ expandable: boolean; expandableRowIndexes: number[]; }>; }; export declare const dataTableRowInjectKey: InjectionKey;