import React from 'react'; import PropTypes from 'prop-types'; import InputFoundation from '@douyinfe/semi-foundation/lib/es/input/foundation'; import BaseComponent from '../_base/baseComponent'; import '@douyinfe/semi-foundation/lib/es/input/input.css'; export type { InputGroupProps } from './inputGroup'; export type { TextAreaProps } from './textarea'; export type InputSize = 'small' | 'large' | 'default'; export type InputMode = 'password'; export type ValidateStatus = "default" | "error" | "warning" | "success"; export interface InputProps extends Omit, 'onChange' | 'prefix' | 'size' | 'placeholder' | 'onFocus' | 'onBlur'> { 'aria-label'?: React.AriaAttributes['aria-label']; 'aria-describedby'?: React.AriaAttributes['aria-describedby']; 'aria-errormessage'?: React.AriaAttributes['aria-errormessage']; 'aria-invalid'?: React.AriaAttributes['aria-invalid']; 'aria-labelledby'?: React.AriaAttributes['aria-labelledby']; 'aria-required'?: React.AriaAttributes['aria-required']; addonBefore?: React.ReactNode; addonAfter?: React.ReactNode; borderless?: boolean; prefix?: React.ReactNode; suffix?: React.ReactNode; mode?: InputMode; value?: React.ReactText; defaultValue?: React.ReactText; disabled?: boolean; readonly?: boolean; type?: string; showClear?: boolean; hideSuffix?: boolean; placeholder?: React.ReactText; insetLabel?: React.ReactNode; insetLabelId?: string; size?: InputSize; className?: string; clearIcon?: React.ReactNode; style?: React.CSSProperties; validateStatus?: ValidateStatus; onClear?: (e: React.MouseEvent) => void; onChange?: (value: string, e: React.ChangeEvent) => void; onBlur?: (e: React.FocusEvent) => void; onFocus?: (e: React.FocusEvent) => void; onInput?: (e: React.MouseEvent) => void; onKeyDown?: (e: React.KeyboardEvent) => void; onKeyUp?: (e: React.KeyboardEvent) => void; onKeyPress?: (e: React.KeyboardEvent) => void; onEnterPress?: (e: React.KeyboardEvent) => void; inputStyle?: React.CSSProperties; getValueLength?: (value: string) => number; forwardRef?: ((instance: any) => void) | React.MutableRefObject | null; preventScroll?: boolean; /** internal prop, DatePicker use it */ showClearIgnoreDisabled?: boolean; onlyBorder?: number; /** Whether to enable composition mode. When enabled, onChange will not be triggered during IME composition, and will only be triggered once after composition ends */ composition?: boolean; } export interface InputState { value: React.ReactText; cachedValue: React.ReactText; disabled: boolean; props: Record; isFocus: boolean; isHovering: boolean; eyeClosed: boolean; minLength: number; } declare class Input extends BaseComponent { static propTypes: { 'aria-label': PropTypes.Requireable; 'aria-labelledby': PropTypes.Requireable; 'aria-invalid': PropTypes.Requireable; 'aria-errormessage': PropTypes.Requireable; 'aria-describedby': PropTypes.Requireable; 'aria-required': PropTypes.Requireable; addonBefore: PropTypes.Requireable; addonAfter: PropTypes.Requireable; clearIcon: PropTypes.Requireable; prefix: PropTypes.Requireable; suffix: PropTypes.Requireable; mode: PropTypes.Requireable<"password">; value: PropTypes.Requireable; defaultValue: PropTypes.Requireable; disabled: PropTypes.Requireable; readonly: PropTypes.Requireable; autoFocus: PropTypes.Requireable; type: PropTypes.Requireable; showClear: PropTypes.Requireable; hideSuffix: PropTypes.Requireable; placeholder: PropTypes.Requireable; size: PropTypes.Requireable<"default" | "small" | "large">; className: PropTypes.Requireable; style: PropTypes.Requireable; validateStatus: PropTypes.Requireable<"default" | "error" | "warning" | "success">; onClear: PropTypes.Requireable<(...args: any[]) => any>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; onInput: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onKeyUp: PropTypes.Requireable<(...args: any[]) => any>; onKeyPress: PropTypes.Requireable<(...args: any[]) => any>; onEnterPress: PropTypes.Requireable<(...args: any[]) => any>; onCompositionStart: PropTypes.Requireable<(...args: any[]) => any>; onCompositionEnd: PropTypes.Requireable<(...args: any[]) => any>; onCompositionUpdate: PropTypes.Requireable<(...args: any[]) => any>; insetLabel: PropTypes.Requireable; insetLabelId: PropTypes.Requireable; inputStyle: PropTypes.Requireable; getValueLength: PropTypes.Requireable<(...args: any[]) => any>; preventScroll: PropTypes.Requireable; borderless: PropTypes.Requireable; composition: PropTypes.Requireable; }; static defaultProps: { addonBefore: string; addonAfter: string; prefix: string; suffix: string; readonly: boolean; type: string; showClear: boolean; hideSuffix: boolean; placeholder: string; size: string; className: string; onClear: (...args: any[]) => void; onChange: (...args: any[]) => void; onBlur: (...args: any[]) => void; onFocus: (...args: any[]) => void; onInput: (...args: any[]) => void; onKeyDown: (...args: any[]) => void; onKeyUp: (...args: any[]) => void; onKeyPress: (...args: any[]) => void; onEnterPress: (...args: any[]) => void; onCompositionStart: (...args: any[]) => void; onCompositionEnd: (...args: any[]) => void; onCompositionUpdate: (...args: any[]) => void; validateStatus: string; borderless: boolean; composition: boolean; }; inputRef: React.RefObject; prefixRef: React.RefObject; suffixRef: React.RefObject; foundation: InputFoundation; constructor(props: InputProps); get adapter(): { setValue: (value: string) => void; setEyeClosed: (value: boolean) => void; toggleFocusing: (isFocus: boolean) => void; focusInput: () => void; toggleHovering: (isHovering: boolean) => void; getIfFocusing: () => boolean; notifyChange: (cbValue: string, e: React.ChangeEvent) => void; notifyBlur: (val: string, e: React.FocusEvent) => void; notifyFocus: (val: string, e: React.FocusEvent) => void; notifyInput: (e: React.MouseEvent) => void; notifyKeyPress: (e: React.KeyboardEvent) => void; notifyKeyDown: (e: React.KeyboardEvent) => void; notifyKeyUp: (e: React.KeyboardEvent) => void; notifyEnterPress: (e: React.KeyboardEvent) => void; notifyClear: (e: React.MouseEvent) => void; notifyCompositionStart: (e: React.CompositionEvent) => void; notifyCompositionEnd: (e: React.CompositionEvent) => void; notifyCompositionUpdate: (e: React.CompositionEvent) => void; setMinLength: (minLength: number) => void; isEventTarget: (e: React.MouseEvent) => boolean; getContext(key: string): any; getContexts(): any; getProp(key: string): any; getProps(): InputProps; getState(key: string): any; getStates(): InputState; setState(s: Pick, callback?: any): void; getCache(c: string): any; getCaches(): any; setCache(key: any, value: any): void; stopPropagation(e: any): void; persistEvent: (event: any) => void; }; static getDerivedStateFromProps(props: InputProps, state: InputState): Partial; componentDidUpdate(prevProps: InputProps): void; componentDidMount(): void; handleClear: (e: React.MouseEvent) => void; handleClick: (e: React.MouseEvent) => void; handleMouseOver: (e: React.MouseEvent) => void; handleMouseLeave: (e: React.MouseEvent) => void; handleModeChange: (mode: string) => void; handleClickEye: (e: React.MouseEvent) => void; handleMouseDown: (e: React.MouseEvent) => void; handleMouseUp: (e: React.MouseEvent) => void; handleModeEnterPress: (e: React.KeyboardEvent) => void; handleClickPrefixOrSuffix: (e: React.MouseEvent) => void; handlePreventMouseDown: (e: React.MouseEvent) => void; renderPrepend(): React.JSX.Element; renderAppend(): React.JSX.Element; renderClearBtn(): React.JSX.Element; renderModeBtn(): React.JSX.Element; renderPrefix(): React.JSX.Element; renderSuffix(suffixAllowClear: boolean): React.JSX.Element; getInputRef(): React.MutableRefObject | React.RefObject | ((node: HTMLInputElement) => void); render(): React.JSX.Element; } declare const ForwardInput: React.ForwardRefExoticComponent & React.RefAttributes>; export default ForwardInput; export { Input };