import React from 'react';
import { Observable } from 'rxjs';
export interface IAutocompleteItem<P = any> {
    name: string;
    disabled?: boolean;
    value: P;
}
export type IComponentAutoCompleteAs<P> = {
    _handleInputChange: (text: string) => void;
    _openAutoComplete: () => void;
    _closeAutoComplete: () => void;
    _loading: boolean;
} & P;
export type IRefAutoCompleteAs = {
    onSelect: (item: IAutocompleteItem) => void;
};
export type IPropsAutoComplete<P> = {
    renderRow?: (name: string, item: IAutocompleteItem, active: boolean, disabled: boolean) => JSX.Element;
    fetchItems?: (text: string) => Observable<IAutocompleteItem[]>;
    items?: IAutocompleteItem[];
    initialSearch?: string;
    onSelect?: (select: string, item: IAutocompleteItem) => void;
    cleanItemsAfterSelect?: boolean;
    persistOpenAutoCompleteItemsAfterSelect?: boolean;
    NotFoundComponent?: React.ComponentType<any>;
    setError?: (error?: any) => any;
} & P;
export type IPropsAutoCompletePure<P> = IPropsAutoComplete<P> & {
    as: React.ComponentType<IComponentAutoCompleteAs<P>>;
};
export type IRefAutoCompletePure = {
    onForceSearch: (text: string, showAutoComplete?: boolean) => void;
};
//# sourceMappingURL=AutocompletePure.interface.d.ts.map