import * as React from "react"; import { HTMLInputProps, IInputGroupProps, IPopoverProps } from "reui-core"; import { IListItemsProps } from "../../common"; export interface ISuggestProps extends IListItemsProps { /** * Whether the popover should close after selecting an item. * @default true */ closeOnSelect?: boolean; /** * Props to spread to `InputGroup`. All props are supported except `ref` (use `inputRef` instead). * If you want to control the filter input, you can pass `value` and `onChange` here * to override `Suggest`'s own behavior. */ inputProps?: IInputGroupProps & HTMLInputProps; /** Custom renderer to transform an item into a string for the input value. */ inputValueRenderer: (item: T) => string; /** * Whether the popover opens on key down or when the input is focused. * @default false */ openOnKeyDown?: boolean; /** Props to spread to `Popover`. Note that `content` cannot be changed. */ popoverProps?: Partial & object; } export interface ISuggestState { isOpen: boolean; selectedItem?: T; } export declare class Suggest extends React.PureComponent, ISuggestState> { static displayName: string; static defaultProps: { closeOnSelect: boolean; openOnKeyDown: boolean; }; static ofType(): new (props: ISuggestProps) => Suggest; state: ISuggestState; private TypedQueryList; private input?; private queryList?; private refHandlers; render(): JSX.Element; componentDidUpdate(_prevProps: ISuggestProps, prevState: ISuggestState): void; private renderQueryList; private selectText; private handleInputFocus; private handleItemSelect; private handlePopoverInteraction; private handlePopoverOpened; private getTargetKeyDownHandler; private getTargetKeyUpHandler; }