import { CSSProperties, ReactNode } from 'react';
import { Align } from '../../base/atoms';
import { BaseProps } from '../../base/props';
export type InputFormatTrigger = 'onChange' | 'onBlur';
export type InputConfirmType = 'send' | 'search' | 'next' | 'go' | 'done';
export interface BaseInput<INPUT_TYPE, CONFIRM_TYPE = InputConfirmType> extends BaseProps {
    /**
    * 输入框类型，支持原生 input 标签的所有 type 属性，另外还支持 number digit
    */
    type: INPUT_TYPE
    /**
    * 组件名字，用于表单提交获取数据
    */
    name: string
    /**
    * 初始默认值
    */
    defaultValue?: string
    /**
    * 初始默认值
    */
    value?: string
    /**
    * 输入框为空时占位符
    */
    placeholder?: string
    /**
    * 输入框内容对齐方式，可选值 left、center、right
    */
    align?: Align
    /**
    * 是否禁用
    */
    disabled: boolean
    /**
    * 是否只读
    */
    readOnly: boolean
    /**
    * 限制最长输入字符
    */
    maxLength: number
    /**
    * 展示清除 Icon
    */
    clearable: boolean
    /**
    * 清除图标 Icon <a href="#/icon">可参考 Icon </a>
    */
    clearIcon: ReactNode
    /**
    * 格式化函数触发的时机，可选值为 onChange、onBlur
    */
    formatTrigger: InputFormatTrigger
    /**
    * 是否自动获得焦点，iOS 系统不支持该属性
    */
    autoFocus: boolean
    /**
    * 键盘右下角按钮的文字，仅在type='text'时生效,可选值 send：发送、search：搜索、next：下一个、go：前往、done：完成
    */
    confirmType: CONFIRM_TYPE
    /**
    * 输入框是容器型还是文本型，容器型一般都是带外边框的
    */
    plain: boolean
    /**
    * 输入框样式
    */
    inputStyle?: CSSProperties
    /**
    * 输入内容格式化函数
    */
    formatter?: (value: string) => string
    /**
    * 输入框内容变化时触发
    */
    onChange?: (value: string) => void
    /**
    * 失去焦点后触发
    */
    onBlur?: (value: string) => void
    /**
    * 获得焦点后触发
    */
    onFocus?: (value: string) => void
    /**
    * 点击清空按钮时触发
    */
    onClear?: (value: string) => void
    /**
    * 点击 input 容器触发
    */
    onClick?: (event: any) => void
}
