import { type SortConfig, type SortDirection } from './sort-column-item';
import { type TagKeyConfig } from './tag-key-value-filter';
import type { TableFilters } from './table/types';
export type { SortableColumn, SortConfig, SortDirection } from './sort-column-item';
export type { TagKeyConfig, TagValueOption } from './tag-key-value-filter';
export interface FilterModalOption {
    id: string;
    label: string;
    count?: number;
}
export interface FilterGroup {
    id: string;
    title: string;
    options: FilterModalOption[];
}
export interface FilterModalProps {
    isOpen: boolean;
    onClose: () => void;
    title?: string;
    filterGroups: FilterGroup[];
    onFilterChange: (filters: TableFilters) => void;
    currentFilters?: TableFilters;
    resetButtonText?: string;
    applyButtonText?: string;
    className?: string;
    sortConfig?: SortConfig;
    onSort?: (column: string, direction: SortDirection) => void;
    onSortClear?: (column: string) => void;
    /** Tag key:value filter config. When provided, renders a key→value filter section */
    tagFilterKeys?: TagKeyConfig[];
    /** Currently selected tags in "key:value" format */
    selectedTags?: string[];
    /** Called when tag selection changes */
    onTagsChange?: (tags: string[]) => void;
    /** Title for the tag keys section */
    tagFilterTitle?: string;
    /** Show skeleton loading state */
    isLoading?: boolean;
    /** Text shown in empty state title */
    emptyStateTitle?: string;
    /** Text shown in empty state description */
    emptyStateDescription?: string;
}
export declare function FilterModal({ isOpen, onClose, title, filterGroups, onFilterChange, currentFilters, resetButtonText, applyButtonText, className, sortConfig, onSort, onSortClear, tagFilterKeys, selectedTags, onTagsChange, tagFilterTitle, isLoading, emptyStateTitle, emptyStateDescription, }: FilterModalProps): import("react").JSX.Element;
//# sourceMappingURL=filter-modal.d.ts.map