import React, { Key } from "react";
import { CollectionChildren } from "@react-types/shared";
import { ListBoxOption } from "../internal/ListBox";
export declare type SelectOption<OptionKey extends Key = string> = ListBoxOption<OptionKey>;
export declare type SelectContainerProps<OptionKey extends Key> = {
    /** An HTML ID attribute that will be attached to the the rendered component. Useful for targeting it from tests */
    id?: string;
    /** Controls if this Select should steal focus when first rendered */
    autoFocus?: boolean;
    /** A list of Options to render inside this Select */
    children: CollectionChildren<SelectOption<OptionKey>> | [CollectionChildren<SelectOption<OptionKey>>, React.ReactElement];
    /** Controls if this Select will be open by default */
    defaultOpen?: boolean;
    /** Key of the Option that is selected when this Select is first rendered */
    defaultSelectedKey?: OptionKey;
    /** An optional hint to show next to the Select that describes what this Select expects */
    hint?: string;
    /** An optional error to show next to the Select. If a `validator` is also supplied, the `validator` takes precendence */
    error?: string;
    /** Controls if this Select is disabled */
    isDisabled?: boolean;
    /** A string describing what this Select represents */
    label: string;
    /** Name of the value held by this Select when placed inside a form */
    name?: string;
    /** A value to display in the Select when it is empty */
    placeholder?: string;
    /** The current selection */
    selectedKey?: OptionKey;
    /** Callback invoked when the Select's selection changes */
    onSelectionChange?: (key: OptionKey) => void;
};
export declare const Select: any;
