import type { CSSProperties, KeyboardEvent } from 'react';
import type { BaseTextInputProps } from '@pisell/utils';
/**
 * PisellLongText 组件 Props 类型定义
 *
 * 继承 BaseTextInputProps，添加长文本特有的配置
 */
export interface PisellLongTextProps extends BaseTextInputProps {
    /**
     * 状态模式
     * @default 'edit'
     */
    mode?: 'read' | 'edit';
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * 编辑态默认显示行数
     * @default 3
     */
    rows?: number;
    /**
     * 编辑态最小行数
     */
    minRows?: number;
    /**
     * 编辑态最大行数
     */
    maxRows?: number;
    /**
     * 自动高度调整
     * @default false
     * @example
     * autoSize={true} // 自动调整
     * autoSize={{ minRows: 3, maxRows: 10 }} // 指定范围
     */
    autoSize?: boolean | {
        minRows?: number;
        maxRows?: number;
    };
    /**
     * 只读态最大显示行数（超出显示展开按钮）
     * @default 3
     */
    maxLines?: number;
    /**
     * 是否启用展开功能（只读态）
     * @default true
     */
    enableExpand?: boolean;
    /**
     * 展开按钮文案
     * @default '展开'
     */
    expandText?: string;
    /**
     * 收起按钮文案
     * @default '收起'
     */
    collapseText?: string;
    /**
     * 展开按钮位置
     * @default 'bottom'
     */
    expandButtonPosition?: 'bottom' | 'inline';
    /**
     * 只读态是否显示字数统计
     * @default false
     */
    showWordCount?: boolean;
    /**
     * 字号
     * @example '14px' 或 14
     * @default 16
     */
    fontSize?: string | number;
    /**
     * 字重
     * @example 'bold' 或 600
     * @default 500
     */
    fontWeight?: string | number;
    /**
     * 文本颜色
     * @example '#000000'
     * @default '#101828'
     */
    color?: string;
    /**
     * 行高
     * @example '1.5' 或 1.5
     * @default 1.5
     */
    lineHeight?: string | number;
    /**
     * 占位文本
     */
    placeholder?: string;
    /**
     * 最大长度（字符数）
     */
    maxLength?: number;
    /**
     * 是否显示字数统计（编辑态）
     * @default false
     */
    showCount?: boolean;
    /**
     * 是否显示清空按钮
     * @default false
     */
    allowClear?: boolean;
    /**
     * 是否自动聚焦
     * @default false
     */
    autoFocus?: boolean;
    /**
     * 回车键回调（传递事件对象，支持判断 Ctrl+Enter）
     * @param e 键盘事件对象
     */
    onPressEnter?: (e: KeyboardEvent<HTMLTextAreaElement>) => void;
    /**
     * 展开/收起回调
     * @param expanded 是否已展开
     */
    onExpand?: (expanded: boolean) => void;
    /**
     * 自定义类名
     */
    className?: string;
    /**
     * 自定义样式
     */
    style?: CSSProperties;
    /**
     * ARIA 标签
     */
    'aria-label'?: string;
    /**
     * ARIA 描述
     */
    'aria-describedby'?: string;
}
export type { DisplayState, ValidationResult, TextInputState } from '@pisell/utils';
