import { Ref, CSSProperties, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
import { SelectValue } from '../common/types';
import Dropdown, { IProps as IDropdownProps } from '../Dropdown';
import CustomFlatSelect, { IProps as ICustomFlatSelectProps } from '../CustomFlatSelect';
export * from './CustomSelectFace';
export * from './CustomSelectOption';
interface ISelfProps extends ICustomFlatSelectProps {
    elementRef?: Ref<Dropdown>;
    style?: CSSProperties;
    placeholder?: string;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, IDropdownProps>;
interface IState {
    value: SelectValue;
}
export default class CustomSelect extends PureComponent<IProps, IState> {
    static propTypes: {
        elementRef: PropTypes.Requireable<(...args: any[]) => any>;
        style: PropTypes.Requireable<object>;
        placeholder: PropTypes.Requireable<string>;
        id: PropTypes.Requireable<string>;
        name: PropTypes.Requireable<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        defaultValue: PropTypes.Requireable<string | number | boolean | (string | number | boolean)[]>;
        value: PropTypes.Requireable<string | number | boolean | (string | number | boolean)[]>;
        multiple: PropTypes.Requireable<boolean>;
        disabled: PropTypes.Requireable<boolean>;
        children: PropTypes.Validator<PropTypes.ReactNodeLike>;
    };
    static defaultProps: {
        multiple: boolean;
        disabled: boolean;
    };
    static getDerivedStateFromProps: typeof CustomFlatSelect.getDerivedStateFromProps;
    private dropdownRef;
    constructor(props: any);
    render(): JSX.Element;
    private face;
    private onDropdownRef;
    private onDropdownHide;
    private onChange;
}
//# sourceMappingURL=CustomSelect.d.ts.map