import * as React from "react";
import { HTMLInputProps, IInputGroupProps, IPopoverProps } from "reui-core";
import { IListItemsProps } from "../../common";
export interface ISelectProps extends IListItemsProps {
/**
* Whether the dropdown list can be filtered.
* Disabling this option will remove the `InputGroup` and ignore `inputProps`.
* @default true
*/
filterable?: boolean;
/**
* Whether the component is non-interactive.
* Note that you'll also need to disable the component's children, if appropriate.
* @default false
*/
disabled?: boolean;
/**
* Props to spread to the query `InputGroup`. Use `query` and
* `onQueryChange` instead of `inputProps.value` and `inputProps.onChange`
* to control this input. Use `inputRef` instead of `ref`.
*/
inputProps?: IInputGroupProps & HTMLInputProps;
/** Props to spread to `Popover`. Note that `content` cannot be changed. */
popoverProps?: Partial & object;
/**
* Whether the filtering state should be reset to initial when the popover closes.
* The query will become the empty string and the first item will be made active.
* @default false
*/
resetOnClose?: boolean;
}
export interface ISelectState {
isOpen: boolean;
}
export declare class Select extends React.PureComponent, ISelectState> {
static displayName: string;
static ofType(): new (props: ISelectProps) => Select;
private TypedQueryList;
private input?;
private list?;
private previousFocusedElement;
private refHandlers;
constructor(props: ISelectProps, context?: any);
render(): JSX.Element;
componentDidUpdate(_prevProps: ISelectProps, prevState: ISelectState): void;
private renderQueryList;
private maybeRenderClearButton(query);
private handleTargetKeyDown;
private handleItemSelect;
private handlePopoverInteraction;
private handlePopoverOpening;
private handlePopoverOpened;
private handlePopoverClosing;
private resetQuery;
}