import { type ReactElement, type ReactNode } from 'react'; import type { DataTableColumnSettingsTriggerProps } from './ColumnSettings/column-settings-types.js'; import { type IntentProps } from '../../../../core/slots/Intent/Intent.js'; import type { BehaviorTrackingProps } from '../../../../core/types/behavior-tracking-props.js'; import type { DataTestId } from '../../../../core/types/data-props.js'; import type { StylingProps } from '../../../../core/types/styling-props.js'; import type { WithChildren } from '../../../../core/types/with-children.js'; import type { DataTablePinnedColumnState } from '../../features/ColumnPinning/column-pinning-types.js'; import type { DataTableColumnVisibilityState } from '../../features/ColumnVisibility/column-visibility-types.js'; /** * @public */ export type DataTableToolbarProps = WithChildren & StylingProps & DataTestId & BehaviorTrackingProps; /** * A helper function to check whether the child component is the DataTableToolbar component. * @internal */ export declare function _isDataTableToolbar(child: ReactElement | null): child is ReactElement; /** * Allowed slots for the DataTableToolbar. * @internal */ export type DataTableToolbarSlots = { visibilitySettings: boolean; columnOrderSettings: boolean; columnPinningSettings: boolean; downloadData: boolean; globalLineWrap: boolean; }; /** * Props for the DataTableToolbar items. * @internal */ export type DataTableToolbarItemProps = { /** * Column visibility reset state that will be used to reset and also to enable/disable 'Reset to default' in column settings modal. */ resetColumnVisibility?: DataTableColumnVisibilityState; /** * Column order reset state that will be used to reset and also to enable/disable 'Reset to default' in column settings modal. */ resetColumnOrder?: string[]; /** * Column pinning reset state that will be used to reset and also to enable/disable 'Reset to default' in column settings modal. */ resetColumnPinning?: DataTablePinnedColumnState; /** * The remaining props for the ColumnSettingsTrigger. */ customTriggerProps?: DataTableColumnSettingsTriggerProps; /** * Array of column IDs that can optionally be excluded from the download. */ downloadExcludedColumns?: string[]; /** * Callback, that fires once data has been downloaded and indicates which subset of data was downloaded (all, page or selected) and which columns were excluded. */ onDownloadData?: (subset: 'all' | 'page' | 'selected', excludedColumns?: string[]) => void; /** * Array of intent props for the `Intent` slot, to render the intent actions in the menu. */ intents: Array; }; /** * @internal */ export declare function getToolbarConfig(children: ReactNode): { slots: DataTableToolbarSlots; toolbarItemProps: DataTableToolbarItemProps; }; /** * Toolbar slot component for general actions that affect the entire table. Positioned above the header. * @public */ export declare const DataTableToolbar: (props: WithChildren & StylingProps & DataTestId & BehaviorTrackingProps & import("react").RefAttributes) => import("react").ReactElement | null;