import { CSSProperties, Ref, PropType, type HTMLAttributes } from 'vue';
import '@douyinfe/semi-foundation/lib/es/input/input.css';
import type { InputGroupProps } from './inputGroup';
import type { TextAreaProps } from './textArea';
import { AriaAttributes } from '../AriaAttributes';
import { CombineProps, VueJsxNode } from '../interface';
export type { TextAreaProps, InputGroupProps };
export type InputSize = 'small' | 'large' | 'default';
export type InputMode = 'password';
export type ValidateStatus = 'default' | 'error' | 'warning' | 'success';
export interface InputProps {
role?: string;
'aria-label'?: AriaAttributes['aria-label'];
'aria-describedby'?: AriaAttributes['aria-describedby'];
'aria-errormessage'?: AriaAttributes['aria-errormessage'];
'aria-invalid'?: AriaAttributes['aria-invalid'];
'aria-labelledby'?: AriaAttributes['aria-labelledby'];
'aria-required'?: AriaAttributes['aria-required'];
addonBefore?: VueJsxNode;
addonAfter?: VueJsxNode;
prefix?: VueJsxNode;
suffix?: VueJsxNode;
mode?: InputMode;
value?: string | number;
defaultValue?: string | number;
disabled?: boolean;
readonly?: boolean;
autoFocus?: boolean;
type?: string;
showClear?: boolean;
hideSuffix?: boolean;
placeholder?: string;
insetLabel?: VueJsxNode;
insetLabelId?: string;
size?: InputSize;
className?: string;
clearIcon?: VueJsxNode;
style?: CSSProperties;
validateStatus?: ValidateStatus;
onClear?: (e: MouseEvent) => void;
onChange?: (value: string, e: HashChangeEvent) => void;
onBlur?: (e: FocusEvent) => void;
onFocus?: (e: FocusEvent) => void;
onPaste?: (e: ClipboardEvent) => void;
onInput?: (e: Event) => void;
onKeyDown?: (e: KeyboardEvent) => void;
onKeyUp?: (e: KeyboardEvent) => void;
onKeyPress?: (e: KeyboardEvent) => void;
onEnterPress?: (e: KeyboardEvent) => void;
inputStyle?: CSSProperties;
getValueLength?: (value: string) => number;
forwardRef?: (((instance: any) => void) | any | null) | Ref;
minlength?: number;
maxlength?: number;
preventScroll?: boolean /** internal prop, DatePicker use it */;
showClearIgnoreDisabled?: boolean;
borderless?: boolean;
onlyBorder?: number;
onCompositionstart?: any;
onCompositionend?: any;
inputMode?: HTMLAttributes['inputmode'];
}
export interface InputState {
value: string | number;
cachedValue: string | number;
disabled: boolean;
props: Record;
paddingLeft: string;
isFocus: boolean;
isHovering: boolean;
eyeClosed: boolean;
minlength: number;
maxlength: number;
}
export declare const propTypes: CombineProps;
export declare const VuePropsType: CombineProps;
declare const Input: import("vue").DefineComponent | {
type: PropType;
default?: any;
required?: false;
};
'aria-label': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-describedby': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-errormessage': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-invalid': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-labelledby': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-required': PropType | {
type: PropType;
default?: any;
required?: false;
};
addonBefore: PropType | {
type: PropType;
default?: any;
required?: false;
};
addonAfter: PropType | {
type: PropType;
default?: any;
required?: false;
};
prefix: PropType | {
type: PropType;
default?: any;
required?: false;
};
suffix: PropType | {
type: PropType;
default?: any;
required?: false;
};
mode: PropType<"password"> | {
type: PropType<"password">;
default?: any;
required?: false;
};
value: PropType | {
type: PropType;
default?: any;
required?: false;
};
defaultValue: PropType | {
type: PropType;
default?: any;
required?: false;
};
disabled: PropType | {
type: PropType;
default?: any;
required?: false;
};
readonly: PropType | {
type: PropType;
default?: any;
required?: false;
};
autoFocus: PropType | {
type: PropType;
default?: any;
required?: false;
};
type: PropType | {
type: PropType;
default?: any;
required?: false;
};
showClear: PropType | {
type: PropType;
default?: any;
required?: false;
};
hideSuffix: PropType | {
type: PropType;
default?: any;
required?: false;
};
placeholder: PropType | {
type: PropType;
default?: any;
required?: false;
};
insetLabel: PropType | {
type: PropType;
default?: any;
required?: false;
};
insetLabelId: PropType | {
type: PropType;
default?: any;
required?: false;
};
size: PropType | {
type: PropType;
default?: any;
required?: false;
};
className: PropType | {
type: PropType;
default?: any;
required?: false;
};
clearIcon: PropType | {
type: PropType;
default?: any;
required?: false;
};
style: PropType | {
type: PropType;
default?: any;
required?: false;
};
validateStatus: PropType | {
type: PropType;
default?: any;
required?: false;
};
onClear: PropType<(e: MouseEvent) => void> | {
type: PropType<(e: MouseEvent) => void>;
default?: any;
required?: false;
};
onChange: PropType<(value: string, e: HashChangeEvent) => void> | {
type: PropType<(value: string, e: HashChangeEvent) => void>;
default?: any;
required?: false;
};
onBlur: PropType<(e: FocusEvent) => void> | {
type: PropType<(e: FocusEvent) => void>;
default?: any;
required?: false;
};
onFocus: PropType<(e: FocusEvent) => void> | {
type: PropType<(e: FocusEvent) => void>;
default?: any;
required?: false;
};
onPaste: PropType<(e: ClipboardEvent) => void> | {
type: PropType<(e: ClipboardEvent) => void>;
default?: any;
required?: false;
};
onInput: PropType<(e: Event) => void> | {
type: PropType<(e: Event) => void>;
default?: any;
required?: false;
};
onKeyDown: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onKeyUp: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onKeyPress: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onEnterPress: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
inputStyle: PropType | {
type: PropType;
default?: any;
required?: false;
};
getValueLength: PropType<(value: string) => number> | {
type: PropType<(value: string) => number>;
default?: any;
required?: false;
};
forwardRef: PropType | {
type: PropType;
default?: any;
required?: false;
};
minlength: PropType | {
type: PropType;
default?: any;
required?: false;
};
maxlength: PropType | {
type: PropType;
default?: any;
required?: false;
};
preventScroll: PropType | {
type: PropType;
default?: any;
required?: false;
};
showClearIgnoreDisabled: PropType | {
type: PropType;
default?: any;
required?: false;
};
borderless: PropType | {
type: PropType;
default?: any;
required?: false;
};
onlyBorder: PropType | {
type: PropType;
default?: any;
required?: false;
};
onCompositionstart: PropType | {
type: PropType;
default?: any;
required?: false;
};
onCompositionend: PropType | {
type: PropType;
default?: any;
required?: false;
};
inputMode: PropType<"none" | "text" | "search" | "email" | "tel" | "url" | "numeric" | "decimal"> | {
type: PropType<"none" | "text" | "search" | "email" | "tel" | "url" | "numeric" | "decimal">;
default?: any;
required?: false;
};
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly | {
type: PropType;
default?: any;
required?: false;
};
'aria-label': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-describedby': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-errormessage': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-invalid': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-labelledby': PropType | {
type: PropType;
default?: any;
required?: false;
};
'aria-required': PropType | {
type: PropType;
default?: any;
required?: false;
};
addonBefore: PropType | {
type: PropType;
default?: any;
required?: false;
};
addonAfter: PropType | {
type: PropType;
default?: any;
required?: false;
};
prefix: PropType | {
type: PropType;
default?: any;
required?: false;
};
suffix: PropType | {
type: PropType;
default?: any;
required?: false;
};
mode: PropType<"password"> | {
type: PropType<"password">;
default?: any;
required?: false;
};
value: PropType | {
type: PropType;
default?: any;
required?: false;
};
defaultValue: PropType | {
type: PropType;
default?: any;
required?: false;
};
disabled: PropType | {
type: PropType;
default?: any;
required?: false;
};
readonly: PropType | {
type: PropType;
default?: any;
required?: false;
};
autoFocus: PropType | {
type: PropType;
default?: any;
required?: false;
};
type: PropType | {
type: PropType;
default?: any;
required?: false;
};
showClear: PropType | {
type: PropType;
default?: any;
required?: false;
};
hideSuffix: PropType | {
type: PropType;
default?: any;
required?: false;
};
placeholder: PropType | {
type: PropType;
default?: any;
required?: false;
};
insetLabel: PropType | {
type: PropType;
default?: any;
required?: false;
};
insetLabelId: PropType | {
type: PropType;
default?: any;
required?: false;
};
size: PropType | {
type: PropType;
default?: any;
required?: false;
};
className: PropType | {
type: PropType;
default?: any;
required?: false;
};
clearIcon: PropType | {
type: PropType;
default?: any;
required?: false;
};
style: PropType | {
type: PropType;
default?: any;
required?: false;
};
validateStatus: PropType | {
type: PropType;
default?: any;
required?: false;
};
onClear: PropType<(e: MouseEvent) => void> | {
type: PropType<(e: MouseEvent) => void>;
default?: any;
required?: false;
};
onChange: PropType<(value: string, e: HashChangeEvent) => void> | {
type: PropType<(value: string, e: HashChangeEvent) => void>;
default?: any;
required?: false;
};
onBlur: PropType<(e: FocusEvent) => void> | {
type: PropType<(e: FocusEvent) => void>;
default?: any;
required?: false;
};
onFocus: PropType<(e: FocusEvent) => void> | {
type: PropType<(e: FocusEvent) => void>;
default?: any;
required?: false;
};
onPaste: PropType<(e: ClipboardEvent) => void> | {
type: PropType<(e: ClipboardEvent) => void>;
default?: any;
required?: false;
};
onInput: PropType<(e: Event) => void> | {
type: PropType<(e: Event) => void>;
default?: any;
required?: false;
};
onKeyDown: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onKeyUp: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onKeyPress: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
onEnterPress: PropType<(e: KeyboardEvent) => void> | {
type: PropType<(e: KeyboardEvent) => void>;
default?: any;
required?: false;
};
inputStyle: PropType | {
type: PropType;
default?: any;
required?: false;
};
getValueLength: PropType<(value: string) => number> | {
type: PropType<(value: string) => number>;
default?: any;
required?: false;
};
forwardRef: PropType | {
type: PropType;
default?: any;
required?: false;
};
minlength: PropType | {
type: PropType;
default?: any;
required?: false;
};
maxlength: PropType | {
type: PropType;
default?: any;
required?: false;
};
preventScroll: PropType | {
type: PropType;
default?: any;
required?: false;
};
showClearIgnoreDisabled: PropType | {
type: PropType;
default?: any;
required?: false;
};
borderless: PropType | {
type: PropType;
default?: any;
required?: false;
};
onlyBorder: PropType | {
type: PropType;
default?: any;
required?: false;
};
onCompositionstart: PropType | {
type: PropType;
default?: any;
required?: false;
};
onCompositionend: PropType | {
type: PropType;
default?: any;
required?: false;
};
inputMode: PropType<"none" | "text" | "search" | "email" | "tel" | "url" | "numeric" | "decimal"> | {
type: PropType<"none" | "text" | "search" | "email" | "tel" | "url" | "numeric" | "decimal">;
default?: any;
required?: false;
};
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default Input;
export { Input };