import type { ReactNode } from "react";
export interface FilterOption {
    label: string;
    value: string;
}
export interface FilterConfig {
    label: string;
    options: FilterOption[];
    value: string[];
    onChange: (value: string[]) => void;
    multiple?: boolean;
}
export interface CollectionToolbarProps extends React.HTMLAttributes<HTMLDivElement> {
    children?: ReactNode;
}
/**
 * CollectionToolbar - A flexible toolbar component for collections with
 * intelligent responsive layout.
 */
export declare const CollectionToolbar: import("react").ForwardRefExoticComponent<CollectionToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
export type CollectionTitleProps = React.HTMLAttributes<HTMLDivElement>;
/**
 * CollectionTitle - Displays a collection title.
 */
export declare const CollectionTitle: import("react").ForwardRefExoticComponent<CollectionTitleProps & import("react").RefAttributes<HTMLDivElement>>;
export interface CollectionSearchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "onChange"> {
    /** Callback fired when search value changes (debounced) */
    onSearch?: (value: string) => void;
    /** Debounce delay in milliseconds (default: 300ms) */
    debounceMs?: number;
    /** Custom width for the search input. Defaults to 200px on desktop, full width on mobile */
    width?: string | number;
}
/**
 * CollectionSearch - A search input component with built-in debouncing.
 */
export declare const CollectionSearch: import("react").ForwardRefExoticComponent<CollectionSearchProps & import("react").RefAttributes<HTMLInputElement>>;
export interface CollectionFiltersProps extends React.HTMLAttributes<HTMLDivElement> {
    /** Manually specify the active filter count. If not provided, will be calculated from children */
    activeCount?: number;
    /** Callback fired when "Clear All" is clicked */
    onClearAll?: () => void;
}
/**
 * CollectionFilters - Container for filter components with responsive behavior.
 *
 * On mobile, shows a single filter button that opens a popover.
 * On desktop, shows individual filter buttons inline.
 */
export declare const CollectionFilters: import("react").ForwardRefExoticComponent<CollectionFiltersProps & import("react").RefAttributes<HTMLDivElement>>;
export interface CollectionFilterProps {
    /** Label for the filter */
    label: string;
    /** Available filter options */
    options: FilterOption[];
    /** Currently selected values */
    value: string[];
    /** Callback fired when selection changes */
    onChange: (value: string[]) => void;
    /** Whether multiple selections are allowed (default: true) */
    multiple?: boolean;
}
/**
 * CollectionFilter - An individual filter component with responsive behavior.
 *
 * On mobile, renders as part of the filters popover.
 * On desktop, renders as a button with a dropdown popover.
 */
export declare const CollectionFilter: import("react").ForwardRefExoticComponent<CollectionFilterProps & import("react").RefAttributes<HTMLDivElement>>;
/**
 * CollectionActions - Container for action buttons.
 */
export declare const CollectionActions: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
export interface CollectionActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    /** Visual priority of the action (affects button variant) */
    priority?: "primary" | "secondary";
    /** Icon to display on the left side of the button */
    leftIcon?: ReactNode;
    /** Icon to display on the right side of the button */
    rightIcon?: ReactNode;
}
/**
 * CollectionAction - An action button component for the toolbar.
 */
export declare const CollectionAction: import("react").ForwardRefExoticComponent<CollectionActionProps & import("react").RefAttributes<HTMLButtonElement>>;
/**
 * CollectionToolbarAnnouncer - Provides screen reader announcements
 * for filter state changes.
 *
 * @internal
 */
export declare const CollectionToolbarAnnouncer: ({ filterCount, }: {
    filterCount: number;
}) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=collection-toolbar.d.ts.map