import type { BglFormSchemaT } from '@bagelink/vue' export type SortDirectionsT = 'ASC' | 'DESC' export type EmitOrderT = `${string} ${SortDirectionsT}` export interface TableSchemaProps { data: T[] schema?: BglFormSchemaT | (() => BglFormSchemaT) columns?: string[] useServerSort?: boolean selectable?: boolean onLastItemVisible?: () => void } export interface TableDataOptions { data: T[] schema?: BglFormSchemaT | (() => BglFormSchemaT) columns?: string[] sortField: string sortDirection: SortDirectionsT useServerSort?: boolean } export interface SortingOptions { onSort: (field: string, direction: SortDirectionsT) => void } export interface TableSelectionOptions { selectable: boolean | undefined selectedItems: { value: string[] } onSelect: (item: T) => void } export interface TableVirtualizationOptions { data: T[] itemHeight: number onLastItemVisible?: () => void }