import * as React from 'react';
import { Stylable } from "../tools/Stylable";
export type Props_FilterInput<T> = Stylable & {
    filter: (item: T) => string[];
    list: T[];
    onChange: (items: T[], filterBy: string, id?: string) => void;
    id: string;
    initialFilterText?: string;
    focus?: boolean;
    placeholder?: string;
    handleKeyEvent?: (e: KeyboardEvent) => void;
};
type State = {};
export declare class FilterInput<T> extends React.Component<Props_FilterInput<T>, State> {
    private filterInstance;
    private notifyChanges;
    static defaultProps: Partial<Props_FilterInput<any>>;
    constructor(props: Props_FilterInput<T>);
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: Readonly<Props_FilterInput<T>>, nextState: Readonly<State>, nextContext: any): boolean;
    callOnChange: (list: T[], filter: string) => void;
    filter: (text: string) => void;
    render(): React.JSX.Element;
}
export {};
