import { PropsWithChildren } from 'react';
import { Data } from '../../../types/data';
import { FilterType, FilterValue } from '../Filters.model';
export interface FilterProps<T extends Data> {
    /** Focus on the element when the filter is opened. (default: true) */
    selectOnFocus?: boolean;
    /** Filter options */
    options: FilterType<T>;
    /** Current value of the filter */
    value?: FilterValue;
    /** Index of the filter in the list of filters */
    index?: number;
    /** Wether or not the filter is active. */
    isActive: boolean;
    /** Additional classNames to add to the filter container */
    className?: string;
    /** Custom renderer for the selected value */
    selectedValueRenderer?: (value: FilterValue) => string;
    /** Callback triggered when a new filter value is selected */
    onFilterChange: (prop: keyof T, value: FilterValue, index: number) => void;
    /** Callback triggered for custom validations of the filter */
    onValidate?: (currentValue: FilterValue) => string | null | undefined;
    /** Callback triggered when the filter is clicked */
    onFilterClicked: () => void;
}
export declare const Filter: <T extends Data>({ options, value, index, isActive, className, selectedValueRenderer, onFilterChange, onFilterClicked, onValidate, selectOnFocus, }: PropsWithChildren<FilterProps<T>>) => JSX.Element;
//# sourceMappingURL=Filter.d.ts.map