// Type definitions for react-virtualized-select 3.0 // Project: https://github.com/bvaughn/react-virtualized-select // Definitions by: Sean Kelley // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 import * as React from "react"; import { ReactSelectProps, ReactAsyncSelectProps, ReactCreatableSelectProps, LoadOptionsHandler, OptionValues } from "react-select"; import { ListProps } from "react-virtualized"; export interface VirtualizedOptionRenderOptions { focusedOption: T; focusedOptionIndex: number; focusOption(option: T): void; key: string; labelKey: keyof T; listProps: ListProps; option: T; options: T[]; selectValue(option: T): void; style: Record; valueArray: T[]; } export interface AdditionalVirtualizedSelectProps { maxHeight?: number; optionHeight?: number | ((options: { option: TValue }) => number); optionRenderer?(options: VirtualizedOptionRenderOptions): JSX.Element; selectComponent?: React.ComponentClass | React.StatelessComponent; } type VirtualizedSelectProps = (ReactCreatableSelectProps & ReactAsyncSelectProps & AdditionalVirtualizedSelectProps & { async: true }) | ReactCreatableSelectProps & ReactSelectProps & AdditionalVirtualizedSelectProps; declare class VirtualizedSelect extends React.PureComponent> {} export default VirtualizedSelect;