import { type VNode, type ExtractPropTypes, type PropType } from 'vue'; import { type TableColumnCtx } from 'element-plus'; import elTableColumnProps from 'element-plus/es/components/table/src/table-column/defaults.mjs'; import { type RendererType } from './renderer'; export type TableColumnPropsSlots = string | ((props: { row: any; column: any; $index: number; }) => any) | { default?: string | ((props: { row: any; column: any; $index: number; }) => any); header?: string | ((props: { column: any; $index: number; }) => any); filterIcon?: string | ((props: { filterOpened: boolean; }) => any); }; export type TableColumnProps = Partial, 'align' | 'tooltipFormatter'>> & { slots?: TableColumnPropsSlots; renderer?: RendererType; hidden?: boolean; align?: 'left' | 'center' | 'right'; columns?: TableColumnProps[]; internalSlot?: { [prop: string]: any; }; tooltip?: string; format?: (cellValue: any, row: any, column: TableColumnCtx, index: number) => VNode | string; }; export type MayBeTableColumnProps = TableColumnProps | null | undefined | boolean; export declare const tableColumnProps: { slots: { type: PropType; }; renderer: { type: PropType; default: string; }; hidden: { type: BooleanConstructor; }; align: { type: PropType; default: string; }; columns: { type: PropType; }; internalSlot: { type: PropType; }; tooltip: { type: StringConstructor; }; format: { type: FunctionConstructor; }; type: { type: StringConstructor; default: string; }; label: StringConstructor; className: StringConstructor; labelClassName: StringConstructor; property: StringConstructor; prop: StringConstructor; width: { type: (NumberConstructor | StringConstructor)[]; default: string; }; minWidth: { type: (NumberConstructor | StringConstructor)[]; default: string; }; renderHeader: PropType["renderHeader"]>; sortable: { type: (BooleanConstructor | StringConstructor)[]; default: boolean; }; sortMethod: PropType["sortMethod"]>; sortBy: PropType["sortBy"]>; resizable: { type: BooleanConstructor; default: boolean; }; columnKey: StringConstructor; headerAlign: StringConstructor; showOverflowTooltip: { type: PropType["showOverflowTooltip"]>; default: undefined; }; tooltipFormatter: PropType["tooltipFormatter"]>; fixed: (BooleanConstructor | StringConstructor)[]; formatter: PropType["formatter"]>; selectable: PropType["selectable"]>; reserveSelection: BooleanConstructor; filterMethod: PropType["filterMethod"]>; filteredValue: PropType["filteredValue"]>; filters: PropType["filters"]>; filterPlacement: StringConstructor; filterMultiple: { type: BooleanConstructor; default: boolean; }; filterClassName: StringConstructor; index: PropType["index"]>; sortOrders: { type: PropType["sortOrders"]>; default: () => (string | null)[]; validator: (val: TableColumnCtx["sortOrders"]) => boolean; }; }; export interface TableColumnSlots { default?: (props: { row: any; column: any; $index: number; }) => any; header?: (props: { column: any; $index: number; }) => any; 'filter-icon'?: (props: { filterOpened: boolean; }) => any; }