import { SimpleTagPropsT } from '../Base';
import * as React from 'react';
export declare type SelectPropsT = {
    /** The value for a controlled select. */
    value?: any;
    /** Options accepts flat arrays, value => label maps, and more. See examples for details. */
    options?: string[] | {
        [value: string]: string;
    } | any[];
    /** A label for the form control. */
    label?: string;
    /** Placeholder text for the form control. Set to a blank string to create a non-floating placeholder label. */
    placeholder?: string;
    /** Disables the form control. */
    disabled?: boolean;
    /** Makes the Select have a visual box. */
    box?: boolean;
    /** Props for the root element. By default, additional props spread to the native select element.  */
    rootProps?: Object;
    /** A className for the root element. */
    className?: string;
} & SimpleTagPropsT;
export declare const SelectRoot: {
    new <P>(props: any, context?: any): {
        render(): React.ReactElement<any> | null;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: any) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        props: Readonly<{
            children?: React.ReactNode;
        }> & Readonly<any>;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
    displayName: string;
    defaultProps: {
        tag: string | React.ComponentClass<any> | React.StatelessComponent<any>;
        constructor: Function;
        toString(): string;
        toLocaleString(): string;
        valueOf(): Object;
        hasOwnProperty(v: string | number | symbol): boolean;
        isPrototypeOf(v: Object): boolean;
        propertyIsEnumerable(v: string | number | symbol): boolean;
    };
    isSimpleTag: boolean;
};
export declare const SelectSurface: {
    new <P>(props: any, context?: any): {
        render(): React.ReactElement<any> | null;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: any) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        props: Readonly<{
            children?: React.ReactNode;
        }> & Readonly<any>;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
    displayName: string;
    defaultProps: {
        tag: string | React.ComponentClass<any> | React.StatelessComponent<any>;
        constructor: Function;
        toString(): string;
        toLocaleString(): string;
        valueOf(): Object;
        hasOwnProperty(v: string | number | symbol): boolean;
        isPrototypeOf(v: Object): boolean;
        propertyIsEnumerable(v: string | number | symbol): boolean;
    };
    isSimpleTag: boolean;
};
export declare const SelectSelectedText: {
    new <P>(props: any, context?: any): {
        render(): React.ReactElement<any> | null;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: any) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        props: Readonly<{
            children?: React.ReactNode;
        }> & Readonly<any>;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
    displayName: string;
    defaultProps: {
        tag: string | React.ComponentClass<any> | React.StatelessComponent<any>;
        constructor: Function;
        toString(): string;
        toLocaleString(): string;
        valueOf(): Object;
        hasOwnProperty(v: string | number | symbol): boolean;
        isPrototypeOf(v: Object): boolean;
        propertyIsEnumerable(v: string | number | symbol): boolean;
    };
    isSimpleTag: boolean;
};
export declare const SelectBottomLine: {
    new <P>(props: any, context?: any): {
        render(): React.ReactElement<any> | null;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: any) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        props: Readonly<{
            children?: React.ReactNode;
        }> & Readonly<any>;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
    displayName: string;
    defaultProps: {
        tag: string | React.ComponentClass<any> | React.StatelessComponent<any>;
        constructor: Function;
        toString(): string;
        toLocaleString(): string;
        valueOf(): Object;
        hasOwnProperty(v: string | number | symbol): boolean;
        isPrototypeOf(v: Object): boolean;
        propertyIsEnumerable(v: string | number | symbol): boolean;
    };
    isSimpleTag: boolean;
};
export declare const SelectNativeControl: {
    new <P>(props: any, context?: any): {
        render(): React.ReactElement<any> | null;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: any) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        props: Readonly<{
            children?: React.ReactNode;
        }> & Readonly<any>;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
    displayName: string;
    defaultProps: {
        tag: string | React.ComponentClass<any> | React.StatelessComponent<any>;
        constructor: Function;
        toString(): string;
        toLocaleString(): string;
        valueOf(): Object;
        hasOwnProperty(v: string | number | symbol): boolean;
        isPrototypeOf(v: Object): boolean;
        propertyIsEnumerable(v: string | number | symbol): boolean;
    };
    isSimpleTag: boolean;
};
declare const Select_base: {
    new <P>(props: P & {
        tag?: string | React.ComponentClass<any> | React.StatelessComponent<any> | undefined;
        className?: string | undefined;
        wrap?: boolean | undefined; /** Options accepts flat arrays, value => label maps, and more. See examples for details. */
        elementRef?: any;
        theme?: string | string[] | undefined;
        children?: React.ReactNode;
        apiRef?: (<S>(api: S) => S) | undefined;
    } & React.HTMLProps<any>): {
        /**
         * Takes multiple structures for options and returns [{label: 'label', value: 'value', ...rest}]
         */
        foundation_: {
            [key: string]: any;
            adapter_: any;
            init: Function;
            destroy: Function;
        } | null;
        foundationRefs: {
            [name: string]: (ref: HTMLElement) => any;
        };
        root_: Element | Text | null;
        props: P & {
            tag?: string | React.ComponentClass<any> | React.StatelessComponent<any> | undefined;
            className?: string | undefined;
            wrap?: boolean | undefined; /** Options accepts flat arrays, value => label maps, and more. See examples for details. */
            elementRef?: any;
            theme?: string | string[] | undefined;
            children?: React.ReactNode;
            apiRef?: (<S>(api: S) => S) | undefined;
        } & React.HTMLProps<any>;
        componentDidMount(): void;
        componentWillReceiveProps(nextProps: P & {
            tag?: string | React.ComponentClass<any> | React.StatelessComponent<any> | undefined;
            className?: string | undefined;
            wrap?: boolean | undefined; /** Options accepts flat arrays, value => label maps, and more. See examples for details. */
            elementRef?: any;
            theme?: string | string[] | undefined;
            children?: React.ReactNode;
            apiRef?: (<S>(api: S) => S) | undefined;
        } & React.HTMLProps<any>): void;
        componentWillUnmount(): void;
        _safeSyncWithProps(props: Object): void;
        initFoundation(): void;
        destroyComponent(): void;
        syncWithProps(nextProps: Object): void;
        initialize(...args: any[]): void;
        initialSyncWithDOM(): void;
        destroy(): void;
        getDefaultFoundation(): {
            adapter_: {};
            init: () => void;
            destroy: () => void;
        };
        emit(evtType: string, evtData: Object, shouldBubble?: boolean): any;
        listen(evtType: string, handler: Function): void;
        unlisten(evtType: string, handler: Function): void;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: P & {
            tag?: string | React.ComponentClass<any> | React.StatelessComponent<any> | undefined;
            className?: string | undefined;
            wrap?: boolean | undefined; /** Options accepts flat arrays, value => label maps, and more. See examples for details. */
            elementRef?: any;
            theme?: string | string[] | undefined;
            children?: React.ReactNode;
            apiRef?: (<S>(api: S) => S) | undefined;
        } & React.HTMLProps<any>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
        forceUpdate(callBack?: (() => void) | undefined): void;
        render(): React.ReactNode;
        state: Readonly<{}>;
        context: any;
        refs: {
            [key: string]: React.ReactInstance;
        };
    };
};
export declare class Select extends Select_base<SelectPropsT> {
    static displayName: string;
    disabled: boolean;
    syncWithProps(nextProps: SelectPropsT): void;
    render(): JSX.Element;
}
export default Select;
