export interface DataTableColumn> { id: string; header: string; /** * How to read the cell value: * - `keyof Row` / string (supports dot-path: `'profile.displayName'`) * - function: `(row) => row.profile.displayName` (preferred for nested/typed access) * Custom render via `cell` snippet still overrides display. */ accessor?: keyof Row | string | ((row: Row) => unknown); align?: 'left' | 'center' | 'right'; sortable?: boolean; width?: string; class?: string; } import type { Snippet } from 'svelte'; import type { RowKey } from '../../../utils/columnAccessor.js'; declare function $$render = Record>(): { props: { columns?: DataTableColumn[]; rows?: T[]; rowKey?: RowKey; sortable?: boolean; striped?: boolean; hoverable?: boolean; compact?: boolean; stickyHeader?: boolean; empty?: string; class?: string; /** Optional custom cell renderer: receives row + column id */ cell?: Snippet<[T, DataTableColumn]>; onrowclick?: (row: T) => void; onsort?: (columnId: string, direction: Exclude<"desc" | "asc" | null, null>) => void; }; exports: {}; bindings: ""; slots: {}; events: {}; }; declare class __sveltets_Render = Record> { props(): ReturnType>['props']; events(): ReturnType>['events']; slots(): ReturnType>['slots']; bindings(): ""; exports(): {}; } interface $$IsomorphicComponent { new = Record>(options: import('svelte').ComponentConstructorOptions['props']>>): import('svelte').SvelteComponent['props']>, ReturnType<__sveltets_Render['events']>, ReturnType<__sveltets_Render['slots']>> & { $$bindings?: ReturnType<__sveltets_Render['bindings']>; } & ReturnType<__sveltets_Render['exports']>; = Record>(internal: unknown, props: ReturnType<__sveltets_Render['props']> & {}): ReturnType<__sveltets_Render['exports']>; z_$$bindings?: ReturnType<__sveltets_Render['bindings']>; } declare const DataTable: $$IsomorphicComponent; type DataTable = Record> = InstanceType>; export default DataTable;