import type { CSSProperties, ReactNode } from 'react';
/**
 * 展示形态
 * @description icon：仅图标；button：图标 + 文案
 */
export declare type VariantType = 'icon' | 'button';
/**
 * 尺寸
 * @description 小、中、大三种尺寸，对应设计稿 padding 与字体
 */
export declare type SizeType = 'small' | 'medium' | 'large';
/**
 * 视觉类型
 * @description default：默认边框/灰字；primary：主色描边或填充
 */
export declare type ImportButtonType = 'default' | 'primary';
/**
 * PisellImport 组件 Props
 * @description 导入触发器 UI 组件，仅负责展示与点击回调，不内置导入逻辑
 */
export interface PisellImportProps {
    /**
     * 展示形态
     * @default 'button'
     */
    variant?: VariantType;
    /**
     * 尺寸
     * @default 'medium'
     */
    size?: SizeType;
    /**
     * 视觉类型（默认样式 / 主色样式）
     * @default 'default'
     */
    type?: ImportButtonType;
    /**
     * 是否禁用
     * @default false
     */
    disabled?: boolean;
    /**
     * Button 形态下的文案，不传时使用国际化默认文案
     */
    label?: ReactNode;
    /**
     * 自定义图标，不传时使用内置上传/导入图标
     */
    icon?: ReactNode;
    /**
     * 接受的文件类型
     * @description 与 input[type=file] 的 accept 一致，如 ".xlsx,.csv" 或 "application/vnd.ms-excel"
     */
    accept?: string;
    /**
     * 是否允许多选
     * @default false
     */
    multiple?: boolean;
    /**
     * 单文件最大体积（MB），超出时不会调用 onImport，并调用 onError
     */
    maxSize?: number;
    /**
     * 选择文件并校验通过后回调
     * @description 用户选择文件后触发，e 为 input 的 change 事件
     */
    onImport?: (files: File[], e: React.ChangeEvent<HTMLInputElement>) => void;
    /**
     * 校验失败时回调（如文件过大）
     */
    onError?: (error: {
        type: 'MAX_SIZE';
        message: string;
        file: File;
    }) => void;
    /**
     * 自定义类名
     */
    className?: string;
    /**
     * 自定义样式
     */
    style?: CSSProperties;
}
