import { Action, ActionGroup, DataApi, DataDefaultSort, DataSortOption, DataSource, DynamicFilter, FilterBuilderProperty, InferTableParams, OptimizedQueryField, QuickFilter, RowAction, SlotStyle, StaticFilter } from '../types/shared'; import { DataTableColumn, DataTableColumnGroup } from '../types/datatable'; import { GenericObject, MaybePromise } from '../../_shared/types/utils'; import { VNodeChild } from 'vue'; type TableSchemaInput, Params extends InferTableParams = InferTableParams> = SlotStyle & { rowIdKey?: Params["keyPaths"]; tableKey: string; remote: Remote; datasource: Source; columns: Array | DataTableColumnGroup>; searchQuery?: Params["keyPaths"][]; expandable?: (params: { rowData: Params["data"]; tableApi: DataApi; }) => boolean; expandedContent?: (params: { rowData: Params["data"]; tableApi: DataApi; }) => VNodeChild; optimizeQuery?: OptimizedQueryField[]; actions?: Array | ActionGroup>; rowActions?: RowAction[]; selection?: boolean; pagination?: boolean; draggable?: boolean; onRowDrag?: (rows: Params["data"]) => MaybePromise; sortOptions?: DataSortOption[]; staticFilters?: StaticFilter[]; filters?: DynamicFilter[]; quickFilters?: QuickFilter[]; defaultSort?: DataDefaultSort; persistency?: false | "localStorage" | "sessionStorage"; defaultPageSize?: number; maxHeight?: string; compact?: boolean; frameless?: boolean; }; type ListSchemaInput, Params extends InferTableParams = InferTableParams> = SlotStyle & { rowIdKey?: Params["keyPaths"]; remote: Remote; datasource: Source; content: (params: { rowData: Params["data"]; tableApi: DataApi; }) => VNodeChild; expandedContent?: (params: { rowData: Params["data"]; tableApi: DataApi; }) => VNodeChild; expandable?: (params: { rowData: Params["data"]; tableApi: DataApi; }) => boolean; optimizeQuery?: OptimizedQueryField[]; staticFilters?: StaticFilter[]; actions?: Action[]; rowActions?: RowAction[]; pagination?: boolean; selection?: boolean; sortOptions?: DataSortOption[]; searchQuery?: Params["keyPaths"][]; filters?: DynamicFilter[]; defaultSort?: DataDefaultSort; persistency?: false | "localStorage" | "sessionStorage"; listKey?: string; defaultPageSize?: number; maxHeight?: false | string; compact?: boolean; frameless?: boolean; }; export declare function buildTableSchema, const Params extends InferTableParams>(schema: TableSchemaInput): TableSchemaInput; export declare function buildTableSchema, const Params extends InferTableParams>(schema: TableSchemaInput): TableSchemaInput; export declare function buildListSchema, const Params extends InferTableParams>(schema: ListSchemaInput): ListSchemaInput; export declare function buildListSchema, const Params extends InferTableParams>(schema: ListSchemaInput): ListSchemaInput; export declare function defineFilterProperty(params: FilterBuilderProperty): FilterBuilderProperty; export type { TableSchemaInput, ListSchemaInput };