import { PropType } from 'vue'; import { ComponentInternalInstance, Ref, VNode } from 'vue'; import { Table } from '../table/defaults'; declare type CI = { column: TableColumnCtx; $index: number; }; declare type Filters = { text: string; value: string; }[]; declare type FilterMethods = (value: any, row: T, column: TableColumnCtx) => void; declare type ValueOf = T[keyof T]; interface TableColumnCtx { id: string; realWidth: number; type: string; label: string; className: string; labelClassName: string; property: string; prop: string; width: string | number; minWidth: string | number; renderHeader: (data: CI) => VNode; sortable: boolean | string; sortMethod: (a: T, b: T) => number; sortBy: string | ((row: T, index: number) => string) | string[]; resizable: boolean; columnKey: string; rawColumnKey: string; align: string; headerAlign: string; showTooltipWhenOverflow: boolean; showOverflowTooltip: boolean; fixed: boolean | string; formatter: (row: T, column: TableColumnCtx, cellValue: any, index: number) => VNode; selectable: (row: T, index: number) => boolean; reserveSelection: boolean; filterMethod: FilterMethods; filteredValue: string[]; filters: Filters; filterPlacement: string; filterMultiple: boolean; index: number | ((index: number) => number); sortOrders: ('ascending' | 'descending' | null)[]; renderCell: (data: any) => void; colSpan: number; rowSpan: number; children: TableColumnCtx[]; level: number; filterable: boolean | FilterMethods | Filters; order: string; isColumnGroup: boolean; columns: TableColumnCtx[]; getColumnIndex: () => number; no: number; } interface TableColumn extends ComponentInternalInstance { vnode: { vParent: TableColumn | Table; } & VNode; vParent: TableColumn | Table; columnId: string; columnConfig: Ref>>; } export type { Filters, FilterMethods, TableColumnCtx, TableColumn, ValueOf }; declare const _default: { 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<(data: CI) => VNode>; sortable: { type: (StringConstructor | BooleanConstructor)[]; default: boolean; }; sortMethod: PropType<(a: any, b: any) => number>; sortBy: PropType string)>; resizable: { type: BooleanConstructor; default: boolean; }; columnKey: StringConstructor; align: StringConstructor; headerAlign: StringConstructor; showTooltipWhenOverflow: BooleanConstructor; showOverflowTooltip: BooleanConstructor; fixed: (StringConstructor | BooleanConstructor)[]; formatter: PropType<(row: any, column: TableColumnCtx, cellValue: any, index: number) => VNode>; selectable: PropType<(row: any, index: number) => boolean>; reserveSelection: BooleanConstructor; filterMethod: PropType>; filteredValue: PropType; filters: PropType; filterPlacement: StringConstructor; filterMultiple: { type: BooleanConstructor; default: boolean; }; index: PropType number)>; sortOrders: { type: PropType<("ascending" | "descending")[]>; default: () => string[]; validator: (val: TableColumnCtx['sortOrders']) => boolean; }; }; export default _default;