import { Value } from '@tempots/dom'; import { BulkAction, DataSource } from './data-source'; import { DescribeFilterOptions } from './filter'; /** * Options for the {@link DataToolbar} component. * * @typeParam T - The type of data rows in the data source * @typeParam C - Column identifier type (defaults to `string`) */ export interface DataToolbarOptions { /** The data source to display state for */ dataSource: DataSource; /** Show active sort indicators. @default true */ showSort?: Value; /** Show active filter chips. @default true */ showFilters?: Value; /** Show selection count and bulk actions. @default true */ showSelection?: Value; /** Available bulk actions when rows are selected */ bulkActions?: BulkAction[]; /** Custom label for the reset button */ resetLabel?: Value; /** Optional callback to describe custom (non-builtin) filter kinds */ describeFilter?: DescribeFilterOptions['describeFilter']; } /** * A toolbar displaying the active state of a {@link DataSource}: active sort indicators, * filter chips with remove buttons, selection count, bulk action buttons, and a "Reset all" control. * * @typeParam T - The type of data rows * @param options - Toolbar configuration * @returns A toolbar element * * @example * ```ts * DataToolbar({ * dataSource: ds, * bulkActions: [ * { label: 'Delete', icon: 'mdi:delete', onClick: (sel) => deleteRows(sel) }, * ], * }) * ``` */ export declare function DataToolbar({ dataSource, showSort, showFilters, showSelection, bulkActions, resetLabel, describeFilter: describeFilterCb, }: DataToolbarOptions): import("@tempots/core").Renderable;