import { ScrollbarInstance, TableColumnCtx, TableProps } from 'element-plus'; import { CSSProperties, VNode, VNodeChild } from 'vue'; export type DefaultRow = Record; export interface XTableColumnProps { align?: string; columnKey?: string; content?: (scope: { index: number; row: D; }) => VNodeChild; fixed?: 'left' | 'right'; header?: (scope: { column: XTableColumnProps; }) => VNodeChild; headerAlign?: string; label?: string; minWidth?: number; prop?: string; selectable?: (row: D, index: number) => boolean; type?: 'index' | 'selection'; width?: number; } export interface XTableConfig { align?: string; border?: TableProps['border']; emptyText?: TableProps['emptyText']; fit?: TableProps['fit']; headerAlign?: string; /** * 是否隐藏额外内容并在单元格悬停时使用 Tooltip 显示它们。这将影响全部列的展示 * @default false */ showOverflowTooltip?: TableProps['showOverflowTooltip']; } export interface XTableEvents { headerDragend: [newWidth: number, oldWidth: number, column: TableColumnCtx]; rowClick: [row: D]; rowDblclick: [row: D]; scroll: [data: { scrollLeft: number; scrollTop: number; }]; selectionChange: [rows: D[]]; } export interface XTableProps extends XTableConfig { cellClassName?: ((scope: { column: TableColumnCtx; columnIndex: number; row: D; rowIndex: number; }) => string) | string; cellStyle?: ((scope: { column: TableColumnCtx; columnIndex: number; row: D; rowIndex: number; }) => CSSProperties) | CSSProperties; columns?: XTableColumnProps[]; data?: D[]; height?: TableProps['height']; rowClassName?: ((scope: { row: D; rowIndex: number; }) => string) | string; rowKey?: ((row: D) => string) | string; rowStyle?: ((scope: { row: D; rowIndex: number; }) => CSSProperties) | CSSProperties; showSummary?: TableProps['showSummary']; size?: TableProps['size']; spanMethod?: (scope: { column: TableColumnCtx; columnIndex: number; row: D; rowIndex: number; }) => number[] | undefined | { colspan: number; rowspan: number; }; summaryMethod?: (scope: { columns: TableColumnCtx[]; data: D[]; }) => (string | VNode)[]; } declare const __VLS_export: (__VLS_props: NonNullable>["props"], __VLS_ctx?: __VLS_PrettifyLocal>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable>["expose"], __VLS_setup?: Promise<{ props: import('vue').PublicProps & __VLS_PrettifyLocal & { onHeaderDragend?: ((newWidth: number, oldWidth: number, column: TableColumnCtx) => any) | undefined; onRowClick?: ((row: D) => any) | undefined; onRowDblclick?: ((row: D) => any) | undefined; onScroll?: ((data: { scrollLeft: number; scrollTop: number; }) => any) | undefined; onSelectionChange?: ((rows: D[]) => any) | undefined; }> & (typeof globalThis extends { __VLS_PROPS_FALLBACK: infer P; } ? P : {}); expose: (exposed: import('vue').ShallowUnwrapRef<{ clearSelection: () => void | undefined; doLayout: () => void | undefined; getSelectionRows: () => D[]; scrollBarRef: import('vue').ComputedRef; scrollTo: (options: number | ScrollToOptions, yCoord?: number) => void | undefined; setCurrentRow: (row: D) => void | undefined; setScrollLeft: (left: number) => void | undefined; setScrollTop: (top: number) => void | undefined; toggleAllSelection: () => void | undefined; toggleRowSelection: (row: D, selected?: boolean, ignoreSelectable?: boolean) => void | undefined; }>) => void; attrs: any; slots: {}; emit: ((evt: "headerDragend", newWidth: number, oldWidth: number, column: TableColumnCtx) => void) & ((evt: "rowClick", row: D) => void) & ((evt: "rowDblclick", row: D) => void) & ((evt: "scroll", data: { scrollLeft: number; scrollTop: number; }) => void) & ((evt: "selectionChange", rows: D[]) => void); }>) => import('vue').VNode & { __ctx?: NonNullable>; }; declare const _default: typeof __VLS_export; export default _default; type __VLS_PrettifyLocal = (T extends any ? { [K in keyof T]: T[K]; } : { [K in keyof T as K]: T[K]; }) & {};