import * as React from "react";
export interface FilterOption {
    id: string;
    label: string;
    value: string | number | boolean;
    count?: number;
    type?: 'option' | 'separator';
}
export interface FilterSection {
    id: string;
    title: string;
    type: "checkbox" | "radio" | "select";
    options: FilterOption[];
    allowSelectAll?: boolean;
    defaultSelected?: string[];
}
export interface FiltersDropdownProps {
    triggerElement?: React.ReactNode;
    triggerLabel?: string;
    sections: FilterSection[];
    onApply: (filters: Record<string, string[]>) => void;
    onReset?: () => void;
    className?: string;
    dropdownClassName?: string;
    /**
     * Currently applied filters to preserve state when reopening.
     * Pass the same filters that were applied via onApply callback.
     *
     * @example
     * ```tsx
     * const { appliedFilters, handleApply } = useFiltersDropdown(sections)
     *
     * <FiltersDropdown
     *   sections={sections}
     *   onApply={handleApply}
     *   currentFilters={appliedFilters}
     *   triggerLabel="STATUS"
     * />
     * ```
     */
    currentFilters?: Record<string, string[]>;
    placement?: "bottom-start" | "bottom-end" | "bottom";
    /**
     * Enable responsive mobile behavior (full width on mobile)
     * @default true
     */
    responsive?: boolean;
}
export declare const FiltersDropdown: React.FC<FiltersDropdownProps>;
export declare const useFiltersDropdown: (initialSections: FilterSection[]) => {
    appliedFilters: Record<string, string[]>;
    handleApply: (filters: Record<string, string[]>) => void;
    handleReset: () => void;
    getActiveFiltersCount: () => number;
};
//# sourceMappingURL=filters-dropdown.d.ts.map