import { ComponentInternalInstance, CSSProperties, Ref, VNode, PropType } from 'vue'; import { Store } from '../store/index'; import { TableColumnCtx } from '../table-column/defaults'; import type TableLayout from '../table-layout'; export declare type DefaultRow = any; export declare type Nullable = null | T; interface TableRefs { headerWrapper: HTMLElement; footerWrapper: HTMLElement; fixedBodyWrapper: HTMLElement; rightFixedBodyWrapper: HTMLElement; bodyWrapper: HTMLElement; [key: string]: any; } interface TableState { isGroup: Ref; resizeState: Ref<{ width: any; height: any; }>; doLayout: () => void; debouncedUpdateLayout: () => void; } declare type HoverState = Nullable<{ cell: HTMLElement; column: TableColumnCtx; row: T; }>; declare type RIS = { row: T; $index: number; store: Store; }; declare type RenderExpanded = ({ row, $index, store }: RIS) => VNode; declare type SummaryMethod = (data: { columns: TableColumnCtx; data: T[]; }) => string[]; interface Table extends ComponentInternalInstance { $ready: boolean; hoverState?: HoverState; renderExpanded: RenderExpanded; store: Store; layout: TableLayout; refs: TableRefs; tableId: string; state: TableState; } declare type ColumnCls = string | ((data: { row: T; rowIndex: number; }) => string); declare type ColumnStyle = CSSProperties | ((data: { row: T; rowIndex: number; }) => CSSProperties); declare type CellCls = string | ((data: { row: T; rowIndex: number; column: TableColumnCtx; columnIndex: number; }) => string); declare type CellStyle = CSSProperties | ((data: { row: T; rowIndex: number; column: TableColumnCtx; columnIndex: number; }) => CSSProperties); interface TableProps { data: T[]; size?: string; width?: string | number; height?: string | number; maxHeight?: string | number; fit?: boolean; stripe?: boolean; border?: boolean; rowKey?: string | ((row: T) => string); context?: Table; showHeader?: boolean; showSummary?: boolean; sumText?: string; summaryMethod?: SummaryMethod; rowClassName?: ColumnCls; rowStyle?: ColumnStyle; cellClassName?: CellCls; cellStyle?: CellStyle; headerRowClassName?: ColumnCls; headerRowStyle?: ColumnStyle; headerCellClassName?: CellCls; headerCellStyle?: CellStyle; highlightCurrentRow?: boolean; currentRowKey?: string | number; emptyText?: string; expandRowKeys?: any[]; defaultExpandAll?: boolean; defaultSort?: Sort; tooltipEffect?: string; spanMethod?: (data: { row: T; rowIndex: number; column: TableColumnCtx; columnIndex: number; }) => number[] | { rowspan: number; colspan: number; }; selectOnIndeterminate?: boolean; indent?: number; treeProps?: { hasChildren?: string; children?: string; }; lazy?: boolean; load?: (row: T, treeNode: TreeNode, resolve: (data: T[]) => void) => void; className?: string; style?: CSSProperties; } interface Sort { prop: string; order: 'ascending' | 'descending'; init?: any; silent?: any; } interface Filter { column: TableColumnCtx; values: string[]; silent: any; } interface TreeNode { expanded?: boolean; loading?: boolean; noLazyChildren?: boolean; indent?: number; level?: number; display?: boolean; } interface RenderRowData { store: Store; _self: Table; column: TableColumnCtx; row: T; $index: number; treeNode?: TreeNode; } declare const _default: { data: { type: PropType; default: () => any[]; }; size: StringConstructor; width: (StringConstructor | NumberConstructor)[]; height: (StringConstructor | NumberConstructor)[]; maxHeight: (StringConstructor | NumberConstructor)[]; fit: { type: BooleanConstructor; default: boolean; }; stripe: BooleanConstructor; border: BooleanConstructor; rowKey: PropType string)>; showHeader: { type: BooleanConstructor; default: boolean; }; showSummary: BooleanConstructor; sumText: StringConstructor; summaryMethod: PropType>; rowClassName: PropType>; rowStyle: PropType>; cellClassName: PropType>; cellStyle: PropType>; headerRowClassName: PropType>; headerRowStyle: PropType>; headerCellClassName: PropType>; headerCellStyle: PropType>; highlightCurrentRow: BooleanConstructor; currentRowKey: (StringConstructor | NumberConstructor)[]; emptyText: StringConstructor; expandRowKeys: PropType; defaultExpandAll: BooleanConstructor; defaultSort: PropType; tooltipEffect: StringConstructor; spanMethod: PropType<(data: { row: any; rowIndex: number; column: TableColumnCtx; columnIndex: number; }) => { rowspan: number; colspan: number; } | number[]>; selectOnIndeterminate: { type: BooleanConstructor; default: boolean; }; indent: { type: NumberConstructor; default: number; }; treeProps: { type: PropType<{ hasChildren?: string; children?: string; }>; default: () => { hasChildren: string; children: string; }; }; lazy: BooleanConstructor; load: PropType<(row: any, treeNode: TreeNode, resolve: (data: any[]) => void) => void>; style: { type: PropType; default: () => {}; }; className: { type: StringConstructor; default: string; }; }; export default _default; export type { SummaryMethod, Table, TableProps, TableRefs, ColumnCls, ColumnStyle, TreeNode, RenderRowData, Sort, Filter };