import { RenderResult } from '@dojo/framework/core/interfaces';
import { ItemRendererProperties, ListOption, ListItemProperties, MenuItemProperties } from '../list';
import { PopupPosition } from '../popup';
export interface SelectProperties {
    /** Callback called when user selects a value */
    onValue(value: ListOption): void;
    /** The initial selected value */
    initialValue?: string;
    /** Controlled value property */
    value?: string;
    /** Property to determine how many items to render. Defaults to 6 */
    itemsInView?: number;
    /** placement of the select menu; 'above' or 'below' */
    position?: PopupPosition;
    /** Placeholder value to show when nothing has been selected */
    placeholder?: string;
    /** Property to determine if the input is disabled */
    disabled?: boolean;
    /** Sets the helper text of the input */
    helperText?: string;
    /** Boolean to indicate if field is required */
    required?: boolean;
    /** Callabck when valid state has changed */
    onValidate?(valid: boolean): void;
    /** The name property of the input */
    name?: string;
}
export interface SelectChildren {
    /** Custom renderer for item contents */
    items?(item: ItemRendererProperties, props: ListItemProperties & MenuItemProperties): RenderResult;
    /** The label to show */
    label?: RenderResult;
}
export declare const Select: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{
    properties: SelectProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/middleware/resources").ResourceProperties<ListOption, undefined> & import("@dojo/framework/core/interfaces").FocusProperties & import("@dojo/framework/core/interfaces").I18nProperties;
    children: SelectChildren;
}>;
export default Select;
