import { ComponentPropsWithoutRef } from 'react';
import { Filter } from './internal/types';
import { LayoutUtilProps } from '../../../types';
import { ToolbarSize } from '../Toolbar/types';
/**
 * Props for the FilterBar component
 *
 * @extends ComponentPropsWithoutRef<"div">
 * @extends LayoutUtilProps
 */
export type FilterBarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
    /** Array of filter objects */
    filters: Filter[];
    /** Description of the content this filter bar is associated with, used for accessibility */
    associatedContent: string;
    /** Callback function when filters change */
    onFilterChange: (filters: Filter[]) => void;
    /** Whether the filters submission is controlled via an apply button */
    controlledFiltering?: boolean;
    /**
     * Size of filter controls
     * @default xsmall
     */
    size?: ToolbarSize;
    /**
     * When true, filters stay inline at every container width instead of
     * collapsing to drawer-only mode at narrow widths.
     * @default false
     */
    disableCollapse?: boolean;
};
/**
 * FilterBar component for displaying a standalone group of filters with toggles and a clear button.
 *
 * Features:
 * - Standalone component with `role="toolbar"` and keyboard navigation
 * - Renders filter toggles and popovers for all filter types
 * - Supports controlled and uncontrolled filtering
 * - Integrates with FilterDrawer for batch filter editing of drawer-only filters
 * - Provides a clear all filters button
 * - Shares filter state via context for child components
 * - Supports boolean, custom, single-select, multi-select, date, and date range filter types
 * - Preserves filter state when filter configuration changes
 * - Responsive: collapses to drawer-only mode below 640px; opt out via `disableCollapse`
 * - Always wraps; never collapses items into an overflow menu
 * - Can be composed alongside Toolbar as a sibling using Flex layout
 *
 * @example
 * <FilterBar
 *   associatedContent="invoices"
 *   filters={filters}
 *   onFilterChange={handleFilter}
 *   controlledFiltering={true}
 * />
 *
 * @example
 * // With Toolbar as sibling
 * <Flex alignItems="center" justifyContent="space-between">
 *   <Toolbar associatedContent="invoice actions">
 *     <Toolbar.Button icon={SaveIcon} aria-label="Save" />
 *   </Toolbar>
 *   <FilterBar
 *     associatedContent="invoices"
 *     filters={filters}
 *     onFilterChange={handleFilter}
 *   />
 * </Flex>
 */
export declare const FilterBar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
    /** Array of filter objects */
    filters: Filter[];
    /** Description of the content this filter bar is associated with, used for accessibility */
    associatedContent: string;
    /** Callback function when filters change */
    onFilterChange: (filters: Filter[]) => void;
    /** Whether the filters submission is controlled via an apply button */
    controlledFiltering?: boolean;
    /**
     * Size of filter controls
     * @default xsmall
     */
    size?: ToolbarSize;
    /**
     * When true, filters stay inline at every container width instead of
     * collapsing to drawer-only mode at narrow widths.
     * @default false
     */
    disableCollapse?: boolean;
} & import('react').RefAttributes<HTMLDivElement>>;
