import { Component } from 'react';
import PropTypes from 'prop-types';
export declare const FieldValueSelectionFilterConfigType: PropTypes.Requireable<PropTypes.InferProps<{
    type: any;
    field: PropTypes.Requireable<string>;
    autoClose: any;
    name: PropTypes.Validator<string>;
    options: PropTypes.Validator<((...args: any[]) => any) | PropTypes.InferProps<{
        field: PropTypes.Requireable<string>;
        value: PropTypes.Validator<any>;
        name: PropTypes.Requireable<string>;
        view: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    }>[]>;
    filterWith: PropTypes.Requireable<string | ((...args: any[]) => any)>;
    cache: PropTypes.Requireable<number>;
    multiSelect: PropTypes.Requireable<string | boolean>;
    loadingMessage: PropTypes.Requireable<string>;
    noOptionsMessage: PropTypes.Requireable<string>;
    searchThreshold: PropTypes.Requireable<number>;
    available: PropTypes.Requireable<(...args: any[]) => any>;
}>>;
export declare class FieldValueSelectionFilter extends Component<{
    config?: any;
    onChange?: any;
    query?: any;
    autoClose?: any;
    index?: any;
}> {
    static propTypes: {
        index: PropTypes.Validator<number>;
        config: PropTypes.Validator<PropTypes.InferProps<{
            type: any;
            field: PropTypes.Requireable<string>;
            autoClose: any;
            name: PropTypes.Validator<string>;
            options: PropTypes.Validator<((...args: any[]) => any) | PropTypes.InferProps<{
                field: PropTypes.Requireable<string>;
                value: PropTypes.Validator<any>;
                name: PropTypes.Requireable<string>;
                view: PropTypes.Requireable<PropTypes.ReactNodeLike>;
            }>[]>;
            filterWith: PropTypes.Requireable<string | ((...args: any[]) => any)>;
            cache: PropTypes.Requireable<number>;
            multiSelect: PropTypes.Requireable<string | boolean>;
            loadingMessage: PropTypes.Requireable<string>;
            noOptionsMessage: PropTypes.Requireable<string>;
            searchThreshold: PropTypes.Requireable<number>;
            available: PropTypes.Requireable<(...args: any[]) => any>;
        }>>;
        query: PropTypes.Validator<any>;
        onChange: PropTypes.Validator<(...args: any[]) => any>;
    };
    static defaultProps: {
        autoClose: boolean;
    };
    state: {
        popoverOpen: boolean;
        error: any;
        cachedOptions: any;
        options: any;
    };
    private selectItems;
    private timeoutId;
    private searchInput;
    constructor(props: any);
    closePopover(): void;
    onButtonClick(): void;
    loadOptions(): void;
    filterOptions(q?: string): void;
    getOptionFilter(): any;
    resolveOptionsLoader(): any;
    resolveOptionName(option: any): string;
    onOptionClick(field: any, value: any, checked: any): void;
    onKeyDown(index: any, event: any): void;
    resolveMultiSelect(): any;
    render(): JSX.Element;
    renderSearchBox(): JSX.Element;
    renderContent(field: any, query: any, config: any, multiSelect: any): JSX.Element;
    resolveChecked(clause: any): "on" | "off";
    renderLoader(): JSX.Element;
    renderError(message: any): JSX.Element;
    renderNoOptions(): JSX.Element;
    isActiveField(field: any): any;
}
