/// <reference types="react" />
import * as React from "react";
import { DomFieldProps } from "../contracts/field";
import { BaseDomField, BaseDomFieldState } from "../abstractions/base-dom-field";
import { FieldOnChangeCallback, HTMLElementProps } from "../contracts/field";
export declare type TextOnChangeCallback = FieldOnChangeCallback<HTMLInputElement>;
/**
 * Override the differences between extended interfaces.
 */
export interface TextProps extends DomFieldProps, HTMLElementProps<HTMLInputElement> {
    name: string;
    onFocus?: React.EventHandler<React.FocusEvent<HTMLInputElement>>;
    onBlur?: React.EventHandler<React.FocusEvent<HTMLInputElement>>;
    onChange?: TextOnChangeCallback;
    defaultValue?: string;
    initialValue?: string;
    value?: string;
    ref?: React.Ref<Text>;
}
export declare class Text extends BaseDomField<TextProps, BaseDomFieldState, HTMLInputElement> {
    protected GetValueFromEvent(event: React.ChangeEvent<HTMLInputElement>): string;
    protected OnChangeHandler: React.ChangeEventHandler<HTMLInputElement>;
    protected readonly RawDefaultValue: string;
    renderField(): JSX.Element | null;
}
