import React, { CSSProperties, ChangeEvent, KeyboardEvent, RefObject } from 'react'; import { AutoComplete, ComponentSize, ComponentStatus, IconFont, InputType, StandardFunctionProps } from '../../types'; export interface InputProps extends StandardFunctionProps { /** Minimum value for number & range types */ min?: number; /** Maximum value for number & range types */ max?: number; /** Stepping interval granularity for range type */ step?: number; /** Determines whether checkbox is checked */ checked?: boolean; /** Function to be called on field value change */ onChange?: (e: ChangeEvent) => void; /** Function to be called on focus loss */ onBlur?: (e?: ChangeEvent) => void; /** Function to be called on focus gain */ onFocus?: (e?: ChangeEvent) => void; /** Function to be called on key press */ onKeyPress?: (e: KeyboardEvent) => void; /** Function to be called on key up */ onKeyUp?: (e: KeyboardEvent) => void; /** Function to be called on key down */ onKeyDown?: (e: KeyboardEvent) => void; /** Icon to be displayed to the left of text */ icon?: IconFont; /** Maximum string length for input value */ maxLength?: number; /** Keyboard control tab order */ tabIndex?: number; /** Input type (text, number, password, email, checkbox) */ type?: InputType; /** Input field name attribute */ name?: string; /** Input field value to be updated with 'on X' functions */ value?: string | number; /** Placeholder text when no value is present */ placeholder?: string; /** Allows or disallows browser autocomplete functionality */ autocomplete?: AutoComplete; /** Text to be displayed on hover tooltip */ titleText?: string; /** Text to be displayed on hover tooltip when radio button is disabled */ disabledTitleText?: string; /** Input Component size */ size?: ComponentSize; /** Input status state */ status?: ComponentStatus; /** Whether or not the input receives autofocus when mounted */ autoFocus?: boolean; /** Allows or disallows browser spellcheck functionality */ spellCheck?: boolean; /** CSS attributes for the input element */ inputStyle?: CSSProperties; /** For use within a form, marks the input as required */ required?: boolean; /** Pass in a RegEx matcher for best results */ pattern?: string; /** Pass through for container ref */ containerRef?: RefObject; } export declare type InputRef = HTMLInputElement; export declare type InputContainerRef = HTMLDivElement; export declare const Input: React.ForwardRefExoticComponent>;