import type { InjectionKey, Slots } from 'vue'; import type { TableColumnData, TableData } from './types'; export interface TableContext { slots?: Slots; scroll?: { horScrollPosition?: 'left' | 'right' | 'middle'; }; sortStore?: { activeSort?: 'ascend' | 'descend' | ''; activeProp?: string | number; isSortPopup?: boolean; handleSortChange?: (column: TableColumnData, direction?: 'ascend' | 'descend' | '') => void; }; opsStore?: { selectionRows?: TableData[]; selectionRowKeys?: (string | number | undefined)[]; allEnabledSelectionRows?: TableData[]; toggleSelectAll?: (v: boolean) => void; toggleSelect?: (row: TableData, v: boolean) => void; selectAll?: (checked: boolean) => void; }; resizeStore?: { handleThMouseDown?: (prop: string, ev: MouseEvent) => void; prop?: string | number; }; } export interface TableColumnContext { addChild?: (id: number, column: TableColumnData) => void; removeChild?: (id: number) => void; groupColumns?: TableColumnData[]; handleUpdateColumn?: (v: string[]) => void; } export declare const tableInjectionKey: InjectionKey; export declare const tableColumnInjectionKey: InjectionKey;