import type { Component } from 'vue'; export declare type FwTableItemValue = string | number | boolean | object; export declare type FwTableItem = Record; export declare type FwTableFormatFunction = (value: FwTableItemValue, row?: FwTableItem) => string; export declare type FwTableSortFunction = (items: FwTableItem[], columnName: string, sortDirection?: FwTableSort) => FwTableItem[] | undefined; export declare type FwTableSort = 'asc' | 'desc'; export declare type FwTableCellComponentProps = Record | ((ctx: { value: FwTableItemValue; row: FwTableItem; column: string; }) => Record); export declare type FwTableCellComponentHandlers = Record void> | ((ctx: { value: FwTableItemValue; row: FwTableItem; column: string; }) => Record void>); export declare type FwTableItemOptions = Record; export declare interface FwTableProps { items: FwTableItem[]; options?: FwTableItemOptions; loading?: boolean; clickableRows?: boolean; autoSortColumn?: number; enablePagination?: boolean; totalAmount?: number; pageSize?: number; rowKey?: string | ((row: FwTableItem) => string | number); } export declare interface FwTableColumnMeta { key: string; disabled: boolean; sortable: boolean; initSortOrder: FwTableSort; sortFn?: FwTableSortFunction; html: boolean; format: (val: FwTableItemValue, row?: FwTableItem) => FwTableItemValue; component?: Component; componentProps?: FwTableCellComponentProps; componentEventHandlers?: FwTableCellComponentHandlers; isActiveSort: boolean; }