import { Ref, ComponentInternalInstance, VNode } from 'vue' interface fn { (...args: any[]): any } interface AnyObject { [key: string]: any } interface WatcherPropsData { data: Ref rowKey: Ref } interface StoreCurrent { updateCurrentRow: (_currentRow: any) => void updateCurrentRowData: () => void setCurrentRowKey: (key: string) => void states: { _currentRowKey: Ref currentRow: Ref } } interface StoreExpand { setExpandRowKeys: (rowKeys: string[]) => void toggleRowExpansion: (row, expanded: boolean | undefined) => void updateExpandRows: () => void isRowExpanded: (row: AnyObject) => boolean states: { expandRows: Ref defaultExpandAll: Ref } } interface StoreTree { updateTreeExpandKeys: (value: string[]) => void toggleTreeExpansion: (row, expanded) => void loadOrToggle: (row: any) => void states: { expandRowKeys: Ref treeData: Ref indent: Ref lazy: Ref lazyTreeNodeMap: Ref lazyColumnIdentifier: Ref childrenColumnName: Ref } } interface StoreMutations { setData: (states: StoreStates, data: AnyObject[]) => void insertColumn: ( states: StoreStates, column: AnyObject, index: number | undefined, parent: AnyObject ) => void removeColumn: ( states: StoreStates, column: AnyObject, parent: AnyObject ) => void sort: (states: StoreStates, options: Sort) => void changeSortCondition: (states: StoreStates, options: Sort) => void filterChange: (states: StoreStates, options: Filter) => void toggleAllSelection: () => void rowSelectedChanged: (states: StoreStates, row: AnyObject) => void setHoverRow: (states: StoreStates, row: AnyObject) => void setCurrentRow: (states: StoreStates, row: AnyObject) => void } interface StoreStates { rowKey: Ref data: Ref _data: Ref isComplex: Ref _columns: Ref originColumns: Ref columns: Ref fixedColumns: Ref rightFixedColumns: Ref leafColumns: Ref fixedLeafColumns: Ref rightFixedLeafColumns: Ref leafColumnsLength: Ref fixedLeafColumnsLength: Ref rightFixedLeafColumnsLength: Ref isAllSelected: Ref selection: Ref reserveSelection: Ref selectOnIndeterminate: Ref selectable: (item: AnyObject, i: number) => Ref filters: AnyObject filteredData: Ref sortingColumn: AnyObject sortProp: Ref | Ref sortOrder: Ref | Ref hoverRow: Ref expandRows: Ref defaultExpandAll: Ref expandRowKeys: Ref treeData: Ref indent: Ref lazy: Ref lazyTreeNodeMap: Ref lazyColumnIdentifier: Ref childrenColumnName: Ref _currentRowKey: Ref currentRow: Ref } interface Store { assertRowKey: () => void updateColumns: () => void scheduleLayout: (needUpdateColumns?: boolean, immediate?: boolean) => void isSelected: (row: any) => boolean clearSelection: () => void cleanSelection: () => void toggleRowSelection: (row: any, selected?: any[], emitChange?: boolean) => void _toggleAllSelection: () => void updateSelectionByRowKey: () => void updateAllSelected: () => void updateFilters: (columns: any | any[], values: any[]) => AnyObject updateSort: (column: any, prop: string, order: string) => void execFilter: () => void execSort: () => void execQuery: (ignore?: { filter?: any }) => void clearFilter: (columnKeys: string | string[]) => void clearSort: () => void setExpandRowKeysAdapter: (val: string[]) => void toggleRowExpansionAdapter: (row, expanded) => void setExpandRowKeys?: (rowKeys: string[]) => void toggleRowExpansion: (row, expanded?: boolean | undefined) => void updateExpandRows: () => void isRowExpanded: (row: AnyObject) => boolean updateCurrentRow: (_currentRow: any) => void updateCurrentRowData: () => void setCurrentRowKey: (key: string | number) => void updateTreeExpandKeys?: (value: string[]) => void toggleTreeExpansion?: (row, expanded) => void loadOrToggle: (row: any) => void commit: (name: string, ...args) => void updateTableScrollY: () => void toggleAllSelection?: () => void mutations: StoreMutations states: StoreStates } interface Sort { prop: string order: string init?: any silent?: any } interface Filter { column: AnyObject values: string[] silent: any } interface TableLayout { observers: TableHeader[] table: Table store: Store columns: TableColumnCtx[] fit: boolean showHeader: boolean height: Ref scrollX: Ref scrollY: Ref bodyWidth: Ref fixedWidth: Ref rightFixedWidth: Ref tableHeight: Ref headerHeight: Ref appendHeight: Ref footerHeight: Ref viewportHeight: Ref bodyHeight: Ref fixedBodyHeight: Ref gutterWidth: number updateScrollY: () => void setHeight: (value: string, prop?: string) => void setMaxHeight: (value: string) => void getFlattenColumns: () => AnyObject[] updateElsHeight: () => void headerDisplayNone: (elm: HTMLElement) => void updateColumnsWidth: () => void addObserver: (observer: TableHeader) => void removeObserver: (observer: TableHeader) => void notifyObservers: (event: string) => void } interface TreeNode { expanded?: boolean loading?: boolean noLazyChildren?: boolean indent?: number level?: number } interface RenderRowData { store: any _self: any column: any row: any index_: any treeNode?: TreeNode } interface TableFooter { fixed: string store: unknown summaryMethod: () => void sumText: string border: boolean defaultSort: Sort } interface TableProps { data: any[] size: string width: string | number height: string | number maxHeight: string | number fit: boolean stripe: boolean border: boolean rowKey: string | fn context: unknown showHeader: boolean showSummary: boolean sumText: string summaryMethod: fn rowClassName: string | fn rowStyle: unknown | fn cellClassName: string | fn cellStyle: unknown | fn headerRowClassName: string | fn headerRowStyle: unknown | fn headerCellClassName: string | fn headerCellStyle: unknown | fn highlightCurrentRow: boolean currentRowKey: string | number emptyText: string expandRowKeys: any[] defaultExpandAll: boolean defaultSort: unknown tooltipEffect: string spanMethod: fn selectOnIndeterminate: boolean indent: number treeProps: any lazy: boolean load: fn } interface TableRefs { headerWrapper: HTMLElement footerWrapper: HTMLElement fixedBodyWrapper: HTMLElement rightFixedBodyWrapper: HTMLElement bodyWrapper: HTMLElement [key: string]: unknown } interface TableState { isGroup: Ref resizeState: Ref<{ width: any height: any }> doLayout: () => void debouncedUpdateLayout: () => void } interface Table extends ComponentInternalInstance { $ready: boolean hoverState?: null | { cell: HTMLElement column: TableColumnCtx row: AnyObject } renderExpanded: fn store: Store layout: TableLayout refs: TableRefs tableId: string state: TableState } interface TableHeader extends ComponentInternalInstance { state: { onColumnsChange onScrollableChange } filterPanels: Ref } interface TableColumnCtx { id?: string realWidth: number type: string label: string className: string labelClassName: string property: string prop: string width: number minWidth: number renderHeader: fn sortable: boolean | string sortMethod: fn sortBy: string | fn | unknown[] resizable: { type: boolean default: true } columnKey: string align: string headerAlign: string showTooltipWhenOverflow: boolean showOverflowTooltip: boolean fixed: boolean | string formatter: fn selectable: fn reserveSelection: boolean filterMethod: fn filteredValue: unknown[] filters: unknown[] filterPlacement: string filterMultiple: { type: boolean default: true } index: number | fn sortOrders: unknown[] renderCell: (data: AnyObject) => void colSpan: number rowSpan: number children: TableColumnCtx[] level: number filterable: boolean | fn order: string isColumnGroup: boolean columns: TableColumnCtx[] } interface TableColumn extends ComponentInternalInstance { vnode: { vParent: ComponentInternalInstance } & VNode columnId: string columnConfig: Ref } export { TreeNode, RenderRowData, TableFooter, TableProps, WatcherPropsData, Store, Table, AnyObject, TableHeader, TableColumnCtx, TableLayout, fn, TableColumn }