import { TableRowT } from '../table'; import { DataTableConditionUpdatePayload, DataTableSortUpdatePayload, DataTableSelectionPayload, DataTableSelectionChangePayload, DataTableRowKeyValue, EffectiveDataTableColumnT } from './types.ts'; import { DataTableLoadChildrenPayload } from './provide.ts'; declare function __VLS_template(): { attrs: Partial<{}>; slots: Readonly<{ /** thead插槽 */ header?: (options: { columns: EffectiveDataTableColumnT[]; groupColumns: EffectiveDataTableColumnT[][]; }) => any; /** 加载状态插槽 */ loading?: () => any; /** 空状态插槽 */ empty?: () => any; /** 行展开插槽 */ expand?: (scope: { row: TableRowT; rowIndex: number; }) => any; } & Record<`th_${string}`, (options: { column: EffectiveDataTableColumnT; }) => any> & Record<`td_${string}`, (options: { column: EffectiveDataTableColumnT; row: TableRowT; cellValue: any; index: number; }) => any>> & { /** thead插槽 */ header?: (options: { columns: EffectiveDataTableColumnT[]; groupColumns: EffectiveDataTableColumnT[][]; }) => any; /** 加载状态插槽 */ loading?: () => any; /** 空状态插槽 */ empty?: () => any; /** 行展开插槽 */ expand?: (scope: { row: TableRowT; rowIndex: number; }) => any; } & Record<`th_${string}`, (options: { column: EffectiveDataTableColumnT; }) => any> & Record<`td_${string}`, (options: { column: EffectiveDataTableColumnT; row: TableRowT; cellValue: any; index: number; }) => any>; refs: { rootRef: HTMLDivElement; tableEl: HTMLTableElement; headerRef: HTMLTableSectionElement; }; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent; readonly required: true; }; columns: { readonly type: import('vue').PropType; readonly required: true; }; size: { readonly type: import('vue').PropType; readonly default: "medium"; }; height: { readonly type: import('vue').PropType; }; maxHeight: { readonly type: import('vue').PropType; readonly default: "fit-content"; }; minTableWidth: { readonly type: import('vue').PropType; }; rowKey: { readonly type: import('vue').PropType string)>; readonly default: "id"; }; spanMethod: { readonly type: import('vue').PropType; readonly default: () => () => undefined; }; showHeader: { readonly type: BooleanConstructor; readonly default: true; }; headerStyle: { readonly type: import('vue').PropType; readonly default: "fill"; }; expandMethod: { readonly type: import('vue').PropType; }; columnResizable: { readonly type: BooleanConstructor; readonly default: false; }; selection: { readonly type: BooleanConstructor; readonly default: false; }; disabledProp: { readonly type: StringConstructor; readonly default: "disabled"; }; checkStrictly: { readonly type: BooleanConstructor; readonly default: true; }; stripe: { readonly type: BooleanConstructor; readonly default: false; }; border: { readonly type: import('vue').PropType; readonly default: "row"; }; defaultEmptyCellText: { readonly type: StringConstructor; readonly default: "--"; }; emptyLabel: { readonly type: StringConstructor; }; loading: { readonly type: BooleanConstructor; }; loadingLabel: { readonly type: StringConstructor; }; highlightCurrentRow: { readonly type: BooleanConstructor; readonly default: false; }; 'expanded-row-keys': { type: import('vue').PropType; }; conditions: { type: import('vue').PropType>; }; selectedKeys: { type: import('vue').PropType; }; }>, { getRowKey: (row: TableRowT, rowIndex: number) => DataTableRowKeyValue; dataColumnMap: Map; dataColumns: import('vue').Ref; groupColumns: import('vue').Ref; selectAll: () => void; clearAll: () => void; expandAll: () => void; foldAll: () => void; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { "update:expanded-row-keys": (value: DataTableRowKeyValue[]) => any; "update:conditions": (value: Record) => any; "update:selectedKeys": (value: DataTableRowKeyValue[]) => any; } & { selection: (payload: DataTableSelectionPayload) => any; "condition-update": (payload?: DataTableConditionUpdatePayload | undefined) => any; "sort-update": (payload: DataTableSortUpdatePayload) => any; "update:selected-keys": (payload: DataTableRowKeyValue[]) => any; "selection-change": (payload: DataTableSelectionChangePayload) => any; "selection-all": (allSelected: boolean) => any; "load-children": (payload: DataTableLoadChildrenPayload) => any; "column-resize": (column: EffectiveDataTableColumnT, width: number) => any; }, string, import('vue').PublicProps, Readonly; readonly required: true; }; columns: { readonly type: import('vue').PropType; readonly required: true; }; size: { readonly type: import('vue').PropType; readonly default: "medium"; }; height: { readonly type: import('vue').PropType; }; maxHeight: { readonly type: import('vue').PropType; readonly default: "fit-content"; }; minTableWidth: { readonly type: import('vue').PropType; }; rowKey: { readonly type: import('vue').PropType string)>; readonly default: "id"; }; spanMethod: { readonly type: import('vue').PropType; readonly default: () => () => undefined; }; showHeader: { readonly type: BooleanConstructor; readonly default: true; }; headerStyle: { readonly type: import('vue').PropType; readonly default: "fill"; }; expandMethod: { readonly type: import('vue').PropType; }; columnResizable: { readonly type: BooleanConstructor; readonly default: false; }; selection: { readonly type: BooleanConstructor; readonly default: false; }; disabledProp: { readonly type: StringConstructor; readonly default: "disabled"; }; checkStrictly: { readonly type: BooleanConstructor; readonly default: true; }; stripe: { readonly type: BooleanConstructor; readonly default: false; }; border: { readonly type: import('vue').PropType; readonly default: "row"; }; defaultEmptyCellText: { readonly type: StringConstructor; readonly default: "--"; }; emptyLabel: { readonly type: StringConstructor; }; loading: { readonly type: BooleanConstructor; }; loadingLabel: { readonly type: StringConstructor; }; highlightCurrentRow: { readonly type: BooleanConstructor; readonly default: false; }; 'expanded-row-keys': { type: import('vue').PropType; }; conditions: { type: import('vue').PropType>; }; selectedKeys: { type: import('vue').PropType; }; }>> & Readonly<{ onSelection?: ((payload: DataTableSelectionPayload) => any) | undefined; "onCondition-update"?: ((payload?: DataTableConditionUpdatePayload | undefined) => any) | undefined; "onSort-update"?: ((payload: DataTableSortUpdatePayload) => any) | undefined; "onUpdate:selected-keys"?: ((payload: DataTableRowKeyValue[]) => any) | undefined; "onSelection-change"?: ((payload: DataTableSelectionChangePayload) => any) | undefined; "onSelection-all"?: ((allSelected: boolean) => any) | undefined; "onLoad-children"?: ((payload: DataTableLoadChildrenPayload) => any) | undefined; "onColumn-resize"?: ((column: EffectiveDataTableColumnT, width: number) => any) | undefined; "onUpdate:expanded-row-keys"?: ((value: DataTableRowKeyValue[]) => any) | undefined; "onUpdate:conditions"?: ((value: Record) => any) | undefined; "onUpdate:selectedKeys"?: ((value: DataTableRowKeyValue[]) => any) | undefined; }>, { size: "medium" | "small"; maxHeight: string | number; border: "none" | "frame" | "all" | "column" | "row" | "row-column" | "row-frame" | "column-frame"; loading: boolean; stripe: boolean; highlightCurrentRow: boolean; rowKey: string | ((row: TableRowT) => string); spanMethod: import('./types.ts').DataTableSpanMethod; showHeader: boolean; headerStyle: "fill" | "split-line"; columnResizable: boolean; selection: boolean; disabledProp: string; checkStrictly: boolean; defaultEmptyCellText: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, { rootRef: HTMLDivElement; tableEl: HTMLTableElement; headerRef: HTMLTableSectionElement; }, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };