import { type IOps, type IStream } from '../../stream/index.js'; import { type I$Node, type I$Slottable, type INodeCompose } from '../../ui-renderer-dom/index.js'; import { type I$QuantumScroll, type IPageRequest } from './$QuantumScroll.js'; export interface TablePageResponse extends IPageRequest { page: T[]; } export interface ISortBy { direction: 'asc' | 'desc'; selector: K; } export interface TableOption { columns: TableColumn[]; dataSource: IStream | T[]>> | T[]; scrollConfig?: Omit; $between?: I$Node; $rowCallback?: IOps; $container?: INodeCompose; $rowContainer?: INodeCompose; $headerRowContainer?: INodeCompose; $cell?: INodeCompose; $bodyCell?: INodeCompose; $headerCell?: INodeCompose; sortChange?: IStream>; filterChange?: IStream; $sortArrowDown?: I$Node; } export interface TableColumn { $head: I$Slottable; $bodyCallback: IOps; sortBy?: keyof T; gridTemplate?: string; $bodyCellContainer?: INodeCompose; $headerCellContainer?: INodeCompose; } export declare const $caretDown: I$Node; export declare const $defaultTableCell: INodeCompose; export declare const $defaultTableHeaderCell: INodeCompose; export declare const $defaultTableRowContainer: INodeCompose; export declare const $defaultTableContainer: INodeCompose; export declare const $Table: ({ dataSource, columns, scrollConfig, $container, $rowContainer, $headerRowContainer, $cell, $bodyCell, $headerCell, $rowCallback, sortChange, filterChange, $between, $sortArrowDown }: TableOption) => (iTether: import("../../ui/types.js").IOutputTethers<{ scrollRequest: IPageRequest; sortBy: ISortBy; filterChange: FilterState; }>) => I$Slottable;