import { VNode, CSSProperties } from 'vue'; import { SpinProps } from '../spin'; import { EmptyProps } from '../empty'; import { ScrollbarProps } from '../scrollbar'; import { TooltipProps } from '../tooltip'; import { EllipsisProps } from '../ellipsis'; import { PaginationProps } from '../pagination'; export interface Column { title?: string; align?: 'left' | 'center' | 'right'; width?: string | number; className?: string; colSpan?: number; dataIndex?: string; key?: string; ellipsis?: boolean; ellipsisProps?: EllipsisProps; fixed?: 'left' | 'right'; slot?: string; children?: Column[]; showSorterTooltip?: boolean; sortTooltipProps?: TooltipProps; defaultSortOrder?: 'ascend' | 'descend'; sortDirections?: ('ascend' | 'descend')[]; sorter?: (a: any, b: any) => number; customCell?: (record: Record, rowIndex: number, column: Column) => object | undefined; [propName: string]: any; } export interface Selection { columnTitle?: string | VNode; columnWidth?: string | number; fixed?: boolean; hideSelectAll?: boolean; type?: 'checkbox' | 'radio'; selectedRowKeys?: string[]; onChange?: (selectedRowKeys: string[], selectedRows: Record[]) => void; onSelect?: (record: Record, selected: boolean, selectedRows: Record[], selectedRowKeys: string[]) => void; onSelectAll?: (selected: boolean, selectedRows: Record[], changeRows: Record[], selectedRowKeys: string[], changeRowKeys: string[]) => void; getSelectionProps?: (record: Record, rowIndex: number) => object; } export type ScrollOption = { initialScrollPositionOnChange?: boolean; x?: string | number | true; y?: string | number; }; export interface Props { header?: string; footer?: string; columns?: Column[]; dataSource?: object[]; bordered?: boolean; rowClassName?: string | ((record: Record, rowIndex: number) => string); size?: 'large' | 'middle' | 'small'; striped?: boolean; loading?: boolean; spinProps?: SpinProps; emptyProps?: EmptyProps; ellipsisProps?: EllipsisProps; showSorterTooltip?: boolean; sortDirections?: ('ascend' | 'descend')[]; sortTooltipProps?: TooltipProps; sticky?: boolean; showPagination?: boolean; pagination?: PaginationProps; rowKey?: string | ((record: Record, index?: number) => string); rowSelection?: Selection; scroll?: ScrollOption; scrollbarProps?: ScrollbarProps; tableLayout?: 'auto' | 'fixed'; showExpandColumn?: boolean; expandColumnTitle?: string; expandColumnWidth?: string | number; expandFixed?: boolean; expandedRowKeys?: string[]; expandRowByClick?: boolean; } export interface TableSlots { header?: () => VNode[]; expandColumnTitle?: () => VNode[]; headerCell?: (props: { column: Column; title: string | undefined; }) => VNode[]; expandCell?: (props: { record: Record; index: number; expanded: boolean; }) => VNode[]; bodyCell?: (props: { column: Column; record: Record; text: any; index: number; }) => VNode[]; expandedRowRender?: (props: { record: Record; index: number; expanded: boolean; }) => VNode[]; footer?: () => VNode[]; } declare function __VLS_template(): { attrs: Partial<{}>; slots: Readonly & TableSlots; refs: { tableRef: HTMLDivElement; scrollbarRef: ({ $: import('vue').ComponentInternalInstance; $data: {}; $props: { readonly contentClass?: string | undefined; readonly contentStyle?: CSSProperties | undefined; readonly size?: number | undefined; readonly trigger?: "hover" | "none" | undefined; readonly autoHide?: boolean | undefined; readonly delay?: number | undefined; readonly xScrollable?: boolean | undefined; readonly yScrollable?: boolean | undefined; readonly xPlacement?: "top" | "bottom" | undefined; readonly yPlacement?: "left" | "right" | undefined; readonly onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; readonly onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps; $attrs: import('vue').Attrs; $refs: { [x: string]: unknown; } & { containerRef: HTMLDivElement; contentRef: HTMLDivElement; verticalRailRef: HTMLDivElement; horizontalRailRef: HTMLDivElement; }; $slots: Readonly<{ [name: string]: import('vue').Slot | undefined; }>; $root: import('vue').ComponentPublicInstance | null; $parent: import('vue').ComponentPublicInstance | null; $host: Element | null; $emit: ((event: "scroll", e: Event, direction: import('../scrollbar').ScrollDirection) => void) & ((event: "scrollend", e: Event, direction: import('../scrollbar').ScrollDirection) => void); $el: HTMLDivElement; $options: import('vue').ComponentOptionsBase & Readonly<{ onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; }>, { scrollTo: { (options: ScrollToOptions): void; (left: number, top: number): void; }; scrollBy: { (options: ScrollToOptions): void; (left: number, top: number): void; }; getScrollData: () => import('../scrollbar').ScrollbarScrollData; scrollElement: import('vue').ComputedRef; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { scroll: (e: Event, direction: import('../scrollbar').ScrollDirection) => any; scrollend: (e: Event, direction: import('../scrollbar').ScrollDirection) => any; }, string, { size: number; contentClass: string; contentStyle: CSSProperties; trigger: "hover" | "none"; autoHide: boolean; delay: number; xScrollable: boolean; yScrollable: boolean; xPlacement: "top" | "bottom"; yPlacement: "left" | "right"; }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & { beforeCreate?: (() => void) | (() => void)[]; created?: (() => void) | (() => void)[]; beforeMount?: (() => void) | (() => void)[]; mounted?: (() => void) | (() => void)[]; beforeUpdate?: (() => void) | (() => void)[]; updated?: (() => void) | (() => void)[]; activated?: (() => void) | (() => void)[]; deactivated?: (() => void) | (() => void)[]; beforeDestroy?: (() => void) | (() => void)[]; beforeUnmount?: (() => void) | (() => void)[]; destroyed?: (() => void) | (() => void)[]; unmounted?: (() => void) | (() => void)[]; renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]; renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]; errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[]; }; $forceUpdate: () => void; $nextTick: typeof import('vue').nextTick; $watch any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle; } & Readonly<{ size: number; contentClass: string; contentStyle: CSSProperties; trigger: "hover" | "none"; autoHide: boolean; delay: number; xScrollable: boolean; yScrollable: boolean; xPlacement: "top" | "bottom"; yPlacement: "left" | "right"; }> & Omit & Readonly<{ onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; }>, "scrollTo" | "scrollBy" | "getScrollData" | "scrollElement" | ("size" | "contentClass" | "contentStyle" | "trigger" | "autoHide" | "delay" | "xScrollable" | "yScrollable" | "xPlacement" | "yPlacement")> & { scrollTo: { (options: ScrollToOptions): void; (left: number, top: number): void; }; scrollBy: { (options: ScrollToOptions): void; (left: number, top: number): void; }; getScrollData: () => import('../scrollbar').ScrollbarScrollData; scrollElement: HTMLElement | null; } & {} & import('vue').ComponentCustomProperties & {} & { $slots: Readonly & import('../scrollbar').ScrollbarSlots; }) | null; colExpandRef: HTMLTableColElement; colSelectionRef: HTMLTableColElement; colRef: HTMLTableColElement[]; }; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent any; expand: (expanded: boolean, record: Record) => any; expandedRowsChange: (expandedRowKeys: string[]) => any; "update:expandedRowKeys": (expandedRowKeys: string[]) => any; sortChange: (column: Column, dataSource: Record[]) => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ onChange?: ((page: number, pageSize: number) => any) | undefined; onExpand?: ((expanded: boolean, record: Record) => any) | undefined; onExpandedRowsChange?: ((expandedRowKeys: string[]) => any) | undefined; "onUpdate:expandedRowKeys"?: ((expandedRowKeys: string[]) => any) | undefined; onSortChange?: ((column: Column, dataSource: Record[]) => any) | undefined; }>, { footer: string; header: string; scroll: ScrollOption; size: "large" | "middle" | "small"; bordered: boolean; pagination: PaginationProps; sticky: boolean; tableLayout: "auto" | "fixed"; columns: Column[]; loading: boolean; scrollbarProps: ScrollbarProps; spinProps: SpinProps; showPagination: boolean; emptyProps: EmptyProps; ellipsisProps: EllipsisProps; showSorterTooltip: boolean; sortTooltipProps: TooltipProps; sortDirections: ("ascend" | "descend")[]; dataSource: object[]; rowClassName: string | ((record: Record, rowIndex: number) => string); striped: boolean; rowKey: string | ((record: Record, index?: number) => string); rowSelection: Selection; showExpandColumn: boolean; expandColumnTitle: string; expandColumnWidth: string | number; expandFixed: boolean; expandRowByClick: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, { tableRef: HTMLDivElement; scrollbarRef: ({ $: import('vue').ComponentInternalInstance; $data: {}; $props: { readonly contentClass?: string | undefined; readonly contentStyle?: CSSProperties | undefined; readonly size?: number | undefined; readonly trigger?: "hover" | "none" | undefined; readonly autoHide?: boolean | undefined; readonly delay?: number | undefined; readonly xScrollable?: boolean | undefined; readonly yScrollable?: boolean | undefined; readonly xPlacement?: "top" | "bottom" | undefined; readonly yPlacement?: "left" | "right" | undefined; readonly onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; readonly onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps; $attrs: import('vue').Attrs; $refs: { [x: string]: unknown; } & { containerRef: HTMLDivElement; contentRef: HTMLDivElement; verticalRailRef: HTMLDivElement; horizontalRailRef: HTMLDivElement; }; $slots: Readonly<{ [name: string]: import('vue').Slot | undefined; }>; $root: import('vue').ComponentPublicInstance | null; $parent: import('vue').ComponentPublicInstance | null; $host: Element | null; $emit: ((event: "scroll", e: Event, direction: import('../scrollbar').ScrollDirection) => void) & ((event: "scrollend", e: Event, direction: import('../scrollbar').ScrollDirection) => void); $el: HTMLDivElement; $options: import('vue').ComponentOptionsBase & Readonly<{ onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; }>, { scrollTo: { (options: ScrollToOptions): void; (left: number, top: number): void; }; scrollBy: { (options: ScrollToOptions): void; (left: number, top: number): void; }; getScrollData: () => import('../scrollbar').ScrollbarScrollData; scrollElement: import('vue').ComputedRef; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { scroll: (e: Event, direction: import('../scrollbar').ScrollDirection) => any; scrollend: (e: Event, direction: import('../scrollbar').ScrollDirection) => any; }, string, { size: number; contentClass: string; contentStyle: CSSProperties; trigger: "hover" | "none"; autoHide: boolean; delay: number; xScrollable: boolean; yScrollable: boolean; xPlacement: "top" | "bottom"; yPlacement: "left" | "right"; }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & { beforeCreate?: (() => void) | (() => void)[]; created?: (() => void) | (() => void)[]; beforeMount?: (() => void) | (() => void)[]; mounted?: (() => void) | (() => void)[]; beforeUpdate?: (() => void) | (() => void)[]; updated?: (() => void) | (() => void)[]; activated?: (() => void) | (() => void)[]; deactivated?: (() => void) | (() => void)[]; beforeDestroy?: (() => void) | (() => void)[]; beforeUnmount?: (() => void) | (() => void)[]; destroyed?: (() => void) | (() => void)[]; unmounted?: (() => void) | (() => void)[]; renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]; renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]; errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[]; }; $forceUpdate: () => void; $nextTick: typeof import('vue').nextTick; $watch any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle; } & Readonly<{ size: number; contentClass: string; contentStyle: CSSProperties; trigger: "hover" | "none"; autoHide: boolean; delay: number; xScrollable: boolean; yScrollable: boolean; xPlacement: "top" | "bottom"; yPlacement: "left" | "right"; }> & Omit & Readonly<{ onScroll?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; onScrollend?: ((e: Event, direction: import('../scrollbar').ScrollDirection) => any) | undefined; }>, "scrollTo" | "scrollBy" | "getScrollData" | "scrollElement" | ("size" | "contentClass" | "contentStyle" | "trigger" | "autoHide" | "delay" | "xScrollable" | "yScrollable" | "xPlacement" | "yPlacement")> & { scrollTo: { (options: ScrollToOptions): void; (left: number, top: number): void; }; scrollBy: { (options: ScrollToOptions): void; (left: number, top: number): void; }; getScrollData: () => import('../scrollbar').ScrollbarScrollData; scrollElement: HTMLElement | null; } & {} & import('vue').ComponentCustomProperties & {} & { $slots: Readonly & import('../scrollbar').ScrollbarSlots; }) | null; colExpandRef: HTMLTableColElement; colSelectionRef: HTMLTableColElement; colRef: HTMLTableColElement[]; }, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };