import * as React from 'react'; import { SearchProps, SearchResultProps } from 'semantic-ui-react'; declare type ItemProps = { title: string; item: T; }; export declare type CustomSearchProps = { value?: string | T; onChange: (itemId: string, item: T | undefined) => void; resetAfterChange?: boolean; width?: string; resultRenderer?: (p: SearchResultProps) => React.ReactElement; allowNew?: boolean; resultsSkipped?: string[]; fluid?: boolean; style?: React.CSSProperties; className?: string; }; declare type GenericSearchProps = CustomSearchProps & { field: keyof T; returnField?: keyof T; dataLoader: (filter: string) => Promise; }; declare type State = { isLoading: boolean; results: ItemProps[]; value: string; }; export declare class GenericSearch extends React.Component, State> { constructor(props: GenericSearchProps); value: (props: GenericSearchProps) => string; componentDidMount(): void; componentDidUpdate(prevProps: GenericSearchProps): void; resetComponent: () => void; handleResultSelect: (e: any, d: { result: ItemProps; }) => void; clearText: () => void; onSearchChange: (e: React.MouseEvent, d: SearchProps) => Promise; render(): JSX.Element; } export {};