import React from "react";
import "./Ui89InputSelect.css";
import "../style/input-box.css";
import "../style/text.css";
export interface Ui89InputSelectProps<T> {
    /**
     * Available options.
     */
    options?: T[];
    /**
     * Option height. Options list uses a technique called DOM virtualization.
     */
    optionHeight?: number;
    /**
     * The selected option.
     */
    value?: T;
    /**
     * Display search input.
     *
     * Does not search automatically. You must filter the options yourself.
     */
    search?: boolean;
    /**
     * Called whenever an option is selected or cleared. Receives undefined when
     * the user clears the value via the X button.
     */
    onChange?: (option: T | undefined) => void;
    /**
     * Show an X button when a value is selected, allowing the user to clear it.
     */
    clearable?: boolean;
    /**
     * Called when the menu is opened or closed.
     */
    onOpenChange?: (open: boolean) => void;
    /**
     * A search term was provided.
     */
    onSearch?: (search: string) => void;
    /**
     * Retrieves the value that uniquely identifies the option. This is what is
     * used to determine which option is currently selected.
     */
    getOptionKey?: (option: T) => any;
    /**
     * Customize how an option should be rendered.
     */
    renderOption?: (option: T) => any;
    /**
     * Minimum width of the menu. The menu is still going to shrink if it
     * can't fit in the viewport.
     */
    menuOverflowMaxWidth?: number;
}
/**
 * This is a very performant and customizable dropdown selector that
 * allows you to choose from a list of options.
 */
export declare function Ui89InputSelect<T>(props: Ui89InputSelectProps<T>): React.JSX.Element;
