import { type HTMLAttributes, type ReactNode } from 'react'; import type { GridApi } from 'ag-grid-community'; import { type ButtonProps } from '../button/button'; import { type IconButtonProps } from '../button/icon-button'; export interface ToolbarProviderProps { getApi: () => GridApi | undefined; selectionCount: number; onPrint: () => void; markColumnsUserTouched?: (colIds: readonly string[]) => void; children: ReactNode; } export declare function ToolbarProvider({ getApi, selectionCount, onPrint, markColumnsUserTouched, children, }: ToolbarProviderProps): import("react/jsx-runtime").JSX.Element; export type ToolbarRootProps = HTMLAttributes; type ToolbarIconButtonProps = Omit & { /** Accessible label — becomes the tooltip text and `aria-label`. */ label?: string; }; export interface ExportCsvProps extends ToolbarIconButtonProps { /** Optional override — receives the live AG Grid API. */ onExport?: (api: GridApi) => void; } export interface ExportPdfProps extends ToolbarIconButtonProps { /** * Optional override for the default PDF generation. When omitted, clicking * the button calls the built-in handler (`defaultExportPdf`) which * dynamic-imports `jspdf` + `jspdf-autotable` and produces a paged PDF * of the current sort/filter state. Supply your own to plug in a * server-side PDF generator or a custom layout. */ onClick?: (api: GridApi | undefined) => void; /** Filename for the generated PDF (default `data-table-export.pdf`). */ fileName?: string; } export declare function resolveTokenToRgb(varName: string, fallback?: [number, number, number]): [number, number, number]; interface DefaultExportPdfOptions { fileName: string; } /** * Default Export PDF handler. Exported for tests and for consumers who want * to call it from a custom `onClick` (e.g. to add a logo or signature). */ export declare function defaultExportPdf(api: GridApi | undefined, options: DefaultExportPdfOptions): Promise; export type PrintProps = ToolbarIconButtonProps; export interface QuickSearchProps { /** Placeholder text. Falls back to `t('dataTable.quickSearch.placeholder')`. */ placeholder?: string; /** Debounce ms before pushing to AG Grid. Defaults to 150 ms. */ debounceMs?: number; } export interface RefreshButtonProps extends Omit { /** Called when the user clicks Refresh. */ onRefresh: () => void; /** Accessible label. Falls back to `t('dataTable.refresh')`. */ label?: string; } export interface FacetFilterOption { value: TValue | null; label: string; } export interface FacetFilterProps { /** Column field to filter on. */ field: string; /** Options shown as pills. `value: null` clears the filter. */ options: FacetFilterOption[]; /** Accessible label for the pill group. */ label?: string; } export type ExportFormat = 'csv' | 'xlsx' | 'pdf' | 'custom'; export interface ExportMenuItemProps { /** Built-in format or `custom` for consumer-supplied handler. */ format: ExportFormat; /** Label override. Built-in formats default to `t('dataTable.export.{format}')`. */ label?: string; /** Consumer handler — required for `format: 'custom'`. */ onClick?: (api: GridApi | undefined) => void; /** File-name override (only used by built-in formats). */ fileName?: string; } export interface ExportMenuProps extends Omit { /** Custom menu items. When omitted, renders the default CSV+Excel+PDF trio. */ children?: ReactNode; /** Accessible label for the trigger. */ label?: string; } export interface ColumnToggleProps extends Omit { label?: string; /** Override the trigger glyph (defaults to the Columns3Cog icon). */ icon?: ReactNode; /** Extra content rendered below the column list (e.g. a settings switch). */ footer?: ReactNode; /** Extra content rendered above the column list, directly under the title * (e.g. a grouping switch). */ header?: ReactNode; } export interface BulkActionProps extends Omit { label: string; icon?: ReactNode; onClick: (api: GridApi | undefined) => void; variant?: 'default' | 'destructive'; } export declare const Toolbar: import("react").ForwardRefExoticComponent> & { FilterBar: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; Actions: import("react").ForwardRefExoticComponent & import("react").RefAttributes>; /** @deprecated Use `Toolbar.ExportMenu` with a `csv` item. */ ExportCsv: import("react").ForwardRefExoticComponent>; /** @deprecated Use `Toolbar.ExportMenu` with a `pdf` item. */ ExportPdf: import("react").ForwardRefExoticComponent>; Print: import("react").ForwardRefExoticComponent & { /** Accessible label — becomes the tooltip text and `aria-label`. */ label?: string; } & import("react").RefAttributes>; ColumnToggle: import("react").ForwardRefExoticComponent>; BulkAction: import("react").ForwardRefExoticComponent>; QuickSearch: { ({ placeholder, debounceMs }: QuickSearchProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; Refresh: import("react").ForwardRefExoticComponent>; FilterChips: { (): import("react/jsx-runtime").JSX.Element | null; displayName: string; }; FacetFilter: ({ field, options, label, }: FacetFilterProps) => import("react/jsx-runtime").JSX.Element; ExportMenu: import("react").ForwardRefExoticComponent> & { Item: { ({ format, label, onClick, fileName, }: ExportMenuItemProps): import("react/jsx-runtime").JSX.Element; displayName: string; }; }; }; export {}; //# sourceMappingURL=toolbar.d.ts.map