import { Component } from 'react';
import { IInputProps } from './types';
import { IInputContext } from './context';
import { IDisabledContext } from '../disabled';
export interface IInputState {
    hasFocus: boolean;
}
export declare class Input extends Component<IInputProps, IInputState> {
    static contextType: import("react").Context<IInputContext>;
    static displayName: string;
    static defaultProps: {
        type: string;
        size: string;
    };
    context: IInputContext;
    elementRef: import("react").RefObject<HTMLInputElement & HTMLTextAreaElement>;
    get input(): HTMLInputElement & HTMLTextAreaElement;
    state: {
        hasFocus: boolean;
    };
    focus(): void;
    select(selectionStart?: number, selectionEnd?: number): void;
    onKeyDown: (e: React.KeyboardEvent<HTMLInputElement> | React.KeyboardEvent<HTMLTextAreaElement>) => void;
    onFocus: React.FocusEventHandler<HTMLInputElement & HTMLTextAreaElement>;
    onBlur: React.FocusEventHandler<HTMLInputElement & HTMLTextAreaElement>;
    clearInput: React.MouseEventHandler<HTMLElement>;
    componentDidMount(): void;
    renderImpl(disableCtx: IDisabledContext): JSX.Element;
    renderInput: (disableContext: IDisabledContext) => JSX.Element;
    render(): JSX.Element;
}
export default Input;
