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