import React from 'react';
import PropTypes from 'prop-types';
export declare function isIndeterminate(checked: any): boolean;
export declare type FormControlProps = {
    name: string;
    hasFormGroupContainer?: boolean;
    hasFeedbackBlock?: boolean;
    testAutomationId?: string;
} & Partial<FormControlDefaultProps> & Partial<FormControlPropsFormContext> & React.HTMLProps<{}>;
declare type FormControlPropsFormContext = {
    help: string;
    bsStyle: string;
    readOnly: boolean;
    onChange: (event: React.FormEvent<any>) => void;
    value: any;
};
export declare type FormControlDefaultProps = {
    hasFormGroupContainer: boolean;
    hasFeedbackBlock: boolean;
};
export declare class FormControl<P extends FormControlProps> extends React.Component<P, any> {
    static contextTypes: {
        form: PropTypes.Requireable<object>;
        getNeededAutoFocus: PropTypes.Requireable<(...args: any[]) => any>;
        setNeededAutoFocus: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static propTypes: {
        name: PropTypes.Validator<string>;
        hasFormGroupContainer: PropTypes.Requireable<boolean>;
        hasFeedbackBlock: PropTypes.Requireable<boolean>;
        testAutomationId: PropTypes.Requireable<string>;
    };
    static defaultProps: {
        hasFormGroupContainer: boolean;
        hasFeedbackBlock: boolean;
        testAutomationId: string;
    };
    componentDidUpdate(oldProps: any, oldState: any): void;
    getInputDOMNode(): Element | void;
    focus: () => void;
    click(): void;
    getValue(): any;
    outputConverter(e: React.FormEvent<HTMLInputElement>): string | React.FormEvent<HTMLInputElement>;
    inputConverter(value: string): {
        value: string;
    };
    getPropsFromContext(foo?: any): Readonly<P> & Readonly<{
        children?: React.ReactNode;
    }>;
    /**
     * Removes FormGroup stuff from FormControl props
     * @param {object} props
     * @return {object}
     */
    getSafeProps(props: any): any;
}
export {};
