import { Signal, TNode, Value } from '@tempots/dom'; import { DataSource } from './data-source'; import { ControlSize } from '../theme'; /** * Options for the {@link ColumnHeaderMenu} component. */ export interface ColumnHeaderMenuOptions { /** The data source for sort state */ dataSource: DataSource; /** Column identifier */ column: C; /** Whether this column supports sorting */ sortable?: boolean; /** Whether this column can be hidden */ hideable?: boolean; /** Size variant. @default 'md' */ size?: Value; /** Callback to hide this column */ onHideColumn?: () => void; /** Columns that can be shown/hidden */ hideableColumns?: { id: string; label: string; }[]; /** Currently hidden column IDs (reactive) */ hiddenColumns?: Signal>; /** Toggle a column's visibility */ onToggleColumn?: (colId: string) => void; /** Show all hidden columns */ onResetColumns?: () => void; /** Filter content to embed as a submenu (ColumnFilterPanel, ColumnFilter, etc.) */ filterContent?: TNode; /** Whether this column has an active filter (reactive) */ hasActiveFilter?: Signal; /** Callback to clear all filters on this column */ onClearFilter?: () => void; } /** * A kebab menu (⋮) for a column header providing sort, filter, hide, and column * management actions. Uses the existing {@link Menu} component. */ export declare function ColumnHeaderMenu(opts: ColumnHeaderMenuOptions): TNode;