import { ButtonColors, ButtonTheme, IconType, InputSize, VisualSlotType } from './types';
import { DropdownOption } from './dropdown';
import { FILTER_TYPES } from '../../modules/Filters/hooks/useFilters';
export type FilterValue = string | number | string[] | number[] | {
    start: Date | null;
    end: Date | null;
} | null;
export interface FiltersProps {
    filters?: Filter[];
    clearText?: string;
    title?: string;
    icon?: IconType;
    label?: string;
    onClear?: () => void;
    onApply?: (filterStates: Record<string, FilterValue>) => void;
    closeOnApply?: boolean;
    size?: InputSize;
    theme?: ButtonTheme;
    color?: ButtonColors;
}
export interface Filter {
    icon?: VisualSlotType;
    label: string;
    keyName?: string;
    value?: string;
    onValueChange?: (value: FilterChangeValue) => void;
    options?: DropdownOption[];
    placeholder?: string;
    clearText?: string;
    type?: (typeof FILTER_TYPES)[keyof typeof FILTER_TYPES];
    title?: string;
}
export interface FilterChangeValue {
    current: FilterValue;
    filters: Record<string, FilterValue>;
}
//# sourceMappingURL=filters.d.ts.map