import type { ComputedRef, InjectionKey, Ref, ShallowRef } from 'vue'; import type { CalType } from '../../hooks/useCal'; import type { UseCellPropsRes } from '../../hooks/useCellProps'; import type { UseColumnsType } from '../../hooks/useColumns'; import type { FilterState } from '../../hooks/useFilter'; import type { FlattenRecordsType } from '../../hooks/useFlattenRecords'; import type { FlattenAllRecordsType } from '../../hooks/useKVMap'; import type { SelectionsRes } from '../../hooks/useRowSelection'; import type { SortState } from '../../hooks/useSorter'; import type { ColumnsType, DragColumnEventInfo, DragRowEventInfo, ExpandType, GetPopupContainer, GetRowKey, Key, Position, SummaryFixed, SurelyTableProps, TableLocale, TableRowSelection, TriggerEventHandler } from '../interface'; export interface TableContextProps extends CalType, UseColumnsType, FlattenRecordsType, FlattenAllRecordsType, UseCellPropsRes { rawColumns: Ref; bodyHeight: Ref; scrollTop: Ref; scrollLeft: Ref; rowPosition: Ref; dataRowPosition: Ref; startIndex: Ref; data: Ref; rawData: ShallowRef; pageData: Ref; props: SurelyTableProps; bodyWidth: Ref; bodyScrollWidth: Ref; scrollBarSize: Ref; scrollTo: (pos: number | Position, behavior?: 'auto' | 'smooth', skipAnimate?: boolean) => void; leftWidth: Ref; centerWidth: Ref; rightWidth: Ref; showVerticalScrollbar: ComputedRef; showHorizontalScrollbar: Ref; getRowKey: ComputedRef>; selection: SelectionsRes; locale: ComputedRef; sorterStates: Ref[]>; changeSorter: (sortState: SortState) => void; changeFilter: (filterState: FilterState) => void; filterStates: Ref[]>; updateSelectedRowKeys: (keys: Key[]) => void; baseHeight: Ref; expandedRowKeys: Ref>; indentSize: Ref; onTriggerExpand: TriggerEventHandler; childrenColumnName: Ref; expandType: Ref; supportSticky: boolean; mergedRowSelection: Ref; getPopupContainer: Ref; virtual: Ref; xVirtual: Ref; onResizeColumn: SurelyTableProps['onResizeColumn']; onRowDragEnd: (opt: DragRowEventInfo) => void; status: Ref<{ code: number; }>; watermarkMsg: Ref; useAnimate: Ref; animateRows: ComputedRef; dragRowsHandle: Map>; draggingRowKey: Ref; draggingRowKeys: Ref>; insertToRowKey: Ref; dragColumnsHandle: Map>; draggingColumnKey: Ref; onColumnDragEnd: (arg: DragColumnEventInfo) => void; onColumnDrag: (arg: DragColumnEventInfo) => void; prefixCls: ComputedRef; columnDrag: ComputedRef; multiRowDrag: ComputedRef; summaryFixed: ComputedRef; realHeaderHeight: Ref; rootRef: Ref; } export declare const TableContextKey: InjectionKey; export declare const useProvideTable: (props: TableContextProps) => void; export declare const useInjectTable: () => TableContextProps;