/**
 * 表单输入组件共享基础
 * 统一 size / disabled / clearable / modelValue 这一组在 Input / Select / Cascader /
 * DatePicker / InputNumber / TimePicker 等组件中重复出现的包装模式。
 *
 * 设计原则：纯函数 + 类型导出，不引入基类继承，避免 Stencil 装饰器在继承链上的隐式行为。
 * 组件按需 import 对应工具，渲染时调用即可。
 */
/** 组件尺寸（与 Ant Design 对齐，便于迁移） */
export type ComponentSize = 'large' | 'default' | 'small';
/** 全部合法尺寸，用于运行期校验 */
export declare const COMPONENT_SIZES: readonly ComponentSize[];
/**
 * 表单输入组件共享的 prop 契约。
 * 跨框架消费方（React / Vue / 原生）可据此推断任一表单输入组件的通用能力，
 * 各组件在此基础上扩展自身特有 prop。
 */
export interface FormInputProps {
    /** 绑定值（双向，配合 hbChange 事件） */
    modelValue: unknown;
    /** 尺寸 */
    size?: ComponentSize;
    /** 是否禁用 */
    disabled?: boolean;
    /** 是否只读 */
    readonly?: boolean;
    /** 是否可清空 */
    clearable?: boolean;
    /** 占位文本 */
    placeholder?: string;
}
/**
 * 生成尺寸 class 名：buildSizeClass('hb-input', 'large') -> 'hb-input--large'
 * 用于替代各组件 render 中重复的 `[`hb-input--${this.size}`]: true` 模板字面量。
 */
export declare function buildSizeClass(base: string, size: ComponentSize | undefined): string;
/** 清空按钮可见性判定参数 */
export interface ClearVisibleOptions {
    /** 是否声明了 clearable */
    clearable: boolean;
    /** 是否禁用（禁用时不显示） */
    disabled?: boolean;
    /** 是否只读（只读时不显示） */
    readonly?: boolean;
    /** 当前是否有值（无值时不显示） */
    hasValue: boolean;
}
/**
 * 判定清空按钮是否应显示。
 * 抽取自 Input/Select/Cascader 中重复的 `clearable && !disabled && !readonly && hasValue`。
 */
export declare function isClearVisible(options: ClearVisibleOptions): boolean;
/**
 * 判定一个值是否「非空」（用于清空按钮显隐）。
 * 兼容字符串、数字、数组（多选）。
 */
export declare function hasInputValue(value: unknown): boolean;
/**
 * 尺寸 class 集合生成器：返回包含 base 与 size class 的对象，可直接展开进 JSX class 绑定。
 * 例：sizeClassMap('hb-input', 'large', this.size) -> { 'hb-input': true, 'hb-input--large': true }
 */
export declare function sizeClassMap(base: string, size: ComponentSize | undefined): Record<string, boolean>;
