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;
}