import type { PropType } from "vue"; import type { Style } from "../../core/types.js"; import { type TTableColumn, type TTableRow } from "./TTable.js"; export type TDataTableSortDirection = "asc" | "desc"; export type TDataTableSortChangePayload = Readonly<{ sortBy: string; sortDirection: TDataTableSortDirection; }>; export type TDataTableRowSelectPayload = Readonly<{ row: TTableRow; /** Visible row index within the current viewport. */ index: number; /** Absolute row index in the filtered/sorted result set. */ dataIndex: number; /** Original index in the input rows array. */ originalIndex: number; key: unknown; }>; export type TDataTableSorter = (a: TTableRow, b: TTableRow, column: TTableColumn) => number; export type TDataTableFilterPredicate = (row: TTableRow, query: string, columns: readonly TTableColumn[], originalIndex: number) => boolean; export type TDataTableSelectionMode = "none" | "single" | "multiple"; export declare const TDataTable: import("vue").DefineComponent; required: true; }; /** * TDataTable can accept a controlled viewport offset through scrollTop. It is * still non-virtual: rows are sorted/filtered in memory and only the visible * slice is passed to TTable. */ rows: { type: PropType; required: true; }; rowKey: { type: PropType unknown)>; default: undefined; }; selectedRowKey: { type: any; default: undefined; }; selectedRowKeys: { type: PropType; default: undefined; }; scrollTop: { type: NumberConstructor; default: undefined; }; /** Sorts by the raw row value at this key; column format only affects display and filtering. */ sortBy: { type: StringConstructor; default: string; }; sortDirection: { type: PropType; default: string; }; sortable: { type: BooleanConstructor; default: boolean; }; manualSort: { type: BooleanConstructor; default: boolean; }; sorter: { type: PropType; default: undefined; }; filter: { type: StringConstructor; default: string; }; filterable: { type: BooleanConstructor; default: boolean; }; manualFilter: { type: BooleanConstructor; default: boolean; }; filterPredicate: { type: PropType; default: undefined; }; selectable: { type: BooleanConstructor; default: boolean; }; selectionMode: { type: PropType; default: string; }; border: { type: BooleanConstructor; default: boolean; }; style: { type: PropType