import { RenderResult } from '@dojo/framework/core/interfaces'; export declare type TextInputType = 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url' | 'date'; export interface BaseInputProperties { /** Custom aria attributes */ aria?: { [key: string]: string | null; }; /** Should the field autocomplete */ autocomplete?: boolean | string; /** The disabled property of the input */ disabled?: boolean; /** Text to display below the input */ helperText?: string; /** Hides the label for a11y purposes */ labelHidden?: boolean; /** The name property of the input */ name?: string; /** Callback fired when the input is blurred */ onBlur?(): void; /** Callback fired when the input is focused */ onFocus?(): void; /** Callback fired when a key is pressed down */ onKeyDown?(key: number, preventDefault: () => void): void; /** Callback fired when a key is released */ onKeyUp?(key: number, preventDefault: () => void): void; /** Callback fired when the input validation changes */ onValidate?: (valid: boolean | undefined, message: string) => void; /** Callback fired when the input value changes */ onValue?(value?: T['value']): void; /** Callback fired when the input is clicked */ onClick?(): void; /** Callback fired when the pointer enters the input */ onOver?(): void; /** Callback fired when the pointer leaves the input */ onOut?(): void; /** Placeholder text */ placeholder?: string; /** The readonly attribute of the input */ readOnly?: boolean; /** The required attribute of the input */ required?: boolean; /** The initial value */ initialValue?: T['value']; /** The controlled value */ value?: T['value']; /** The id to be applied to the input */ widgetId?: string; /** The kind of input */ kind?: 'outlined' | 'filled'; } export interface TextInputChildren { /** The label to be displayed above the input */ label?: RenderResult; /** Renderer for leading content */ leading?: RenderResult; /** Renderer for trailing content */ trailing?: RenderResult; } export interface TextInputProperties extends BaseInputProperties { /** Custom validator used to validate the contents of the input */ customValidator?: (value: string) => { valid?: boolean; message?: string; } | void; /** The min value a number can be */ min?: number | string; /** The max value a number can be */ max?: number | string; /** The step to increment the number value by */ step?: number | string; /** Maximum number of characters allowed in the input */ maxLength?: number | string; /** Minimum number of characters allowed in the input */ minLength?: number | string; /** Pattern used as part of validation */ pattern?: string | RegExp; /** Input type, e.g. text, email, tel, etc. */ type?: TextInputType; /** Represents if the input value is valid */ valid?: { valid?: boolean; message?: string; } | boolean; } export declare const TextInput: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{ properties: TextInputProperties & import("@dojo/framework/core/interfaces").WidgetProperties & { variant?: "default" | "inherit" | undefined; } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").FocusProperties; children: TextInputChildren; }>; export default TextInput;