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