import type { DefineComponent, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType, VNode } from 'vue'; import type { Column, PaginationProps } from 'element-plus'; import type { Recordable } from '../../shims'; export type Mutable = { -readonly [Key in keyof Type]: Type[Key]; }; export type ComponentsType = 'ElInput' | 'ElInputNumber' | 'ElSelect' | 'ElSwitch' | 'ElTimeSelect' | 'ElTimePicker' | 'ElSelectV2' | 'ElDatePicker' | 'ElCascader'; export interface TableColumn extends Omit { prop?: string; customRender?: string; render?: (scope: Recordable) => VNode; label?: string; type?: 'index' | 'selection' | 'expand'; width?: string | number; placeholder?: string; editable?: boolean; editRow?: boolean; editColumn?: boolean; editColumnScheduler?: () => Promise; editRule?: boolean; editComponent?: ComponentsType; editComponentProps?: Recordable; } export interface TableConfig { isPagination?: boolean; pagination: Partial>; } declare const _default: DefineComponent<{ columns: { type: PropType; required: true; }; data: { type: PropType; required: true; }; config: { type: PropType; default: () => { isPagination: boolean; }; }; }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("current-change" | "edit-column-change" | "size-change")[], "current-change" | "edit-column-change" | "size-change", VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly; required: true; }; data: { type: PropType; required: true; }; config: { type: PropType; default: () => { isPagination: boolean; }; }; }>> & { "onEdit-column-change"?: (...args: any[]) => any; "onCurrent-change"?: (...args: any[]) => any; "onSize-change"?: (...args: any[]) => any; }, { config: TableConfig; }, {}>; export default _default;