import type { PropType, RenderFunction } from 'vue'; import type { UISize, UnionOmit } from '../_utils_'; export interface InputSizeSet { fontSize: number; wordCountFontSize: string; padding: string; wrapperPaddingX: number; innerPaddingY: number; innerLineHeight: number; addonMargin: string; } export interface InputValidRule { message?: string; regExp?: RegExp; validator?: (value: string | string[], index?: number) => Error | boolean | void | Promise; trigger?: InputValidTrigger[]; required?: boolean; } export declare type InputValidTrigger = 'input' | 'change' | 'focus' | 'blur' | 'clear' | 'select'; export declare type InputPlaceholder = string | (() => RenderFunction); export declare type InputLimitType = 'trim' | 'number' | 'not-special' | 'not-space'; export declare type InputLimitRule = InputLimitType | RegExp | ((value: string, event: Event) => boolean); export declare type InputSize = UnionOmit; export declare type InputSizeMap = Record; export interface InputProps { value?: string | string[]; type?: 'text' | 'password' | 'textarea'; size?: InputSize; placeholder?: InputPlaceholder | InputPlaceholder[]; disabled?: boolean; focusOnTyping?: boolean; autosize?: boolean; resizable?: boolean; clearable?: boolean; wordCount?: boolean; loading?: boolean; passwordVisible?: 'none' | 'click' | 'hover' | 'mousedown'; minRows?: number; maxRows?: number; maxLength?: number; inputLimits?: InputLimitRule[]; composed?: boolean; count?: number; separator?: string | string[]; rules?: InputValidRule[]; } export interface InputExposeInstance { focus: () => void; blur: () => void; select: () => void; setPasswordVisible: (visible: boolean) => void; resize: () => void; reset: () => void; validate(callback?: (isValid: boolean) => unknown): Promise; validate(trigger?: InputValidTrigger, callback?: (isValid: boolean) => unknown): Promise; } export declare const enum InputEventType { INSERT = "insertText", DELETE = "deleteContentBackward", PASTE = "insertFromPaste", INSERT_COMPOSITION = "insertCompositionText" } export declare const inputProps: { value: { type: PropType; default: undefined; }; type: { type: PropType<"textarea" | "text" | "password" | undefined>; default: string; }; size: { type: PropType; default: string; }; placeholder: { type: PropType; default: string; }; disabled: { type: PropType; default: boolean; }; focusOnTyping: { type: PropType; default: boolean; }; resizable: { type: PropType; default: boolean; }; clearable: { type: PropType; default: boolean; }; autosize: { type: PropType; default: boolean; }; wordCount: { type: PropType; default: boolean; }; loading: { type: PropType; default: boolean; }; passwordVisible: { type: PropType<"none" | "hover" | "click" | "mousedown" | undefined>; default: string; }; minRows: { type: PropType; default: undefined; }; maxRows: { type: PropType; default: undefined; }; maxLength: { type: PropType; default: undefined; }; inputLimits: { type: PropType; default: undefined; }; composed: { type: PropType; default: boolean; }; inputCount: { type: PropType; default: number; }; separator: { type: PropType; default: undefined; }; rules: { type: PropType; default: undefined; }; };