import { ExtractPropTypes, PropType } from 'vue'; export interface TableResizable { minWidth?: number; maxWidth?: number; } export interface TableSort { key: string; order: 'asc' | 'desc'; } export interface TablePagination { page: number; pageSize: number; total?: number; pageSizes?: number[]; } export interface TableFetchParams { page: number; pageSize: number; sort: TableSort | null; filter: string; } export interface TableFetchResult { data: Record[]; total: number; } export interface TableColumn { key: string; label: string; width?: string | number; align?: 'left' | 'center' | 'right'; fixed?: 'left' | 'right'; resizable?: boolean | TableResizable; sortable?: boolean; editable?: boolean; render?: (row: Record, index: number) => string; } export declare const tableProps: { readonly columns: { readonly type: PropType; readonly required: true; }; readonly data: { readonly type: PropType[]>; readonly default: () => never[]; }; readonly bordered: { readonly type: BooleanConstructor; readonly default: false; }; readonly striped: { readonly type: BooleanConstructor; readonly default: false; }; readonly height: { readonly type: PropType; readonly default: undefined; }; readonly maxHeight: { readonly type: PropType; readonly default: undefined; }; readonly caption: { readonly type: StringConstructor; readonly default: undefined; }; readonly footer: { readonly type: PropType[]>; readonly default: undefined; }; readonly scrollbar: { readonly type: PropType<"auto" | "hover" | "always" | "hidden">; readonly default: "hover"; }; readonly selectable: { readonly type: BooleanConstructor; readonly default: false; }; readonly selected: { readonly type: PropType; readonly default: undefined; }; readonly selectionKey: { readonly type: StringConstructor; readonly default: "id"; }; readonly draggable: { readonly type: BooleanConstructor; readonly default: false; }; readonly resizable: { readonly type: PropType; readonly default: false; }; readonly sortable: { readonly type: BooleanConstructor; readonly default: false; }; readonly sort: { readonly type: PropType; readonly default: undefined; }; readonly loading: { readonly type: BooleanConstructor; readonly default: false; }; readonly expandable: { readonly type: BooleanConstructor; readonly default: false; }; readonly expanded: { readonly type: PropType; readonly default: undefined; }; readonly pagination: { readonly type: PropType; readonly default: false; }; readonly columnToggle: { readonly type: BooleanConstructor; readonly default: false; }; readonly filter: { readonly type: StringConstructor; readonly default: ""; }; readonly groupBy: { readonly type: StringConstructor; readonly default: undefined; }; readonly columnOrder: { readonly type: PropType; readonly default: undefined; }; readonly fetchData: { readonly type: PropType<(params: TableFetchParams) => Promise>; readonly default: undefined; }; readonly pageCount: { readonly type: NumberConstructor; readonly default: 0; }; readonly scrollDistance: { readonly type: NumberConstructor; readonly default: 50; }; }; export declare const tableEmits: { readonly 'update:selected': (_val: any[]) => boolean; readonly 'update:data': (_val: Record[]) => boolean; readonly 'column-resize': (_key: string, _width: number) => boolean; readonly 'update:sort': (_val: TableSort | null) => boolean; readonly 'row-click': (_row: Record, _index: number) => boolean; readonly 'update:expanded': (_val: any[]) => boolean; readonly 'update:pagination': (_val: TablePagination) => boolean; readonly 'update:columnOrder': (_val: string[]) => boolean; readonly 'cell-edit': (_key: string, _row: Record, _value: any) => boolean; }; export type TableProps = ExtractPropTypes;