import { DataFrameColumn, SortState, PaginationState } from '../types'; /** * DataFrame - Data table with sorting, searching, pagination, and row selection. * * @example * ```vue * * ``` */ interface Props { /** Array of data objects */ data: Record[]; /** Column definitions */ columns: DataFrameColumn[]; /** Unique key for each row (property name or function) */ rowKey?: string | ((row: Record) => string | number); /** Alternate row background colors */ striped?: boolean; /** Show table borders */ bordered?: boolean; /** * Table size. Left unset, it follows the platform's `tableDensity` setting * (compact → `sm`, normal → `md`, comfortable → `lg`) and falls back to * `md` when no settings store is installed. */ size?: 'sm' | 'md' | 'lg'; /** Make header sticky on scroll */ stickyHeader?: boolean; /** Maximum table height (enables vertical scroll) */ maxHeight?: string | number; /** Show loading overlay */ loading?: boolean; /** * Error message. When set, the table body is replaced by an error state * instead of the empty state. `null`/`undefined` renders normally. */ error?: string | null; /** Empty state message */ emptyText?: string; /** Enable column sorting */ sortable?: boolean; /** Current sort state (controlled mode) */ sort?: SortState | null; /** Pagination state or false to disable */ pagination?: PaginationState | false; /** Enable search input */ searchable?: boolean; /** Search input placeholder */ searchPlaceholder?: string; /** Column keys to search (defaults to all) */ searchKeys?: string[]; /** Enable row selection with checkboxes */ selectable?: boolean; /** Currently selected row keys */ selectedKeys?: (string | number)[]; /** Make each body row act as a click/keyboard target. */ clickableRows?: boolean; /** Show a trailing action column with a per-row delete button. */ deletable?: boolean; /** Tooltip / aria-label for the row delete button. */ deleteLabel?: string; /** Allow dragging a column's right edge to resize it. */ resizable?: boolean; /** Controlled column widths in px, keyed by column key (omit for uncontrolled). */ columnWidths?: Record; } declare var __VLS_18: `header-${string}`, __VLS_19: { column: DataFrameColumn>; }, __VLS_30: `cell-${string}`, __VLS_31: { value: unknown; row: Record; column: DataFrameColumn>; index: number; }, __VLS_33: { error: string; }, __VLS_40: {}, __VLS_47: {}, __VLS_54: {}; type __VLS_Slots = {} & { [K in NonNullable]?: (props: typeof __VLS_19) => any; } & { [K in NonNullable]?: (props: typeof __VLS_31) => any; } & { error?: (props: typeof __VLS_33) => any; } & { empty?: (props: typeof __VLS_40) => any; } & { loading?: (props: typeof __VLS_47) => any; } & { footer?: (props: typeof __VLS_54) => any; }; declare const __VLS_base: import('vue').DefineComponent any; "update:pagination": (pagination: PaginationState) => any; "update:selectedKeys": (keys: (string | number)[]) => any; "update:columnWidths": (widths: Record) => any; "row-click": (row: Record, index: number) => any; "cell-click": (value: unknown, column: DataFrameColumn>, row: Record) => any; "delete-row": (row: Record, index: number) => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ "onUpdate:sort"?: ((sort: SortState | null) => any) | undefined; "onUpdate:pagination"?: ((pagination: PaginationState) => any) | undefined; "onUpdate:selectedKeys"?: ((keys: (string | number)[]) => any) | undefined; "onUpdate:columnWidths"?: ((widths: Record) => any) | undefined; "onRow-click"?: ((row: Record, index: number) => any) | undefined; "onCell-click"?: ((value: unknown, column: DataFrameColumn>, row: Record) => any) | undefined; "onDelete-row"?: ((row: Record, index: number) => any) | undefined; }>, { error: string | null; loading: boolean; selectable: boolean; searchPlaceholder: string; striped: boolean; bordered: boolean; stickyHeader: boolean; emptyText: string; sortable: boolean; pagination: PaginationState | false; searchable: boolean; selectedKeys: (string | number)[]; clickableRows: boolean; deletable: boolean; deleteLabel: string; resizable: boolean; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };