import React from 'react';
/**
 * 通用单文件上传组件 Props
 */
export interface UploadSingleFileProps {
    /**
     * 触发元素。传入 React 元素时直接渲染并注入 onClick；
     * 传入字符串/数字等非元素时包裹默认 Button 渲染
     */
    children?: React.ReactNode;
    /** 是否禁用触发，禁用时不响应点击，默认 false */
    disabled?: boolean;
    /**
     * Dragger 预校验上传地址（phase 1 base URL）
     * 组件默认追加 `?isUpload=false&locale=xxx`
     * 若同时传入 buildActionUrl，则 actionUrl 仅作为降级兜底
     */
    actionUrl?: string;
    /**
     * 覆盖内置 URL 构建逻辑（业务方需要拼 keyId 等额外参数时使用）
     * @param isUpload true 为正式上传，false 为预校验
     * @param locale 当前语言
     */
    buildActionUrl?: (isUpload: boolean, locale: string) => string;
    /**
     * 确认导入回调，业务方负责发请求/toast/刷新
     * 返回 true 时组件自动关闭弹窗
     */
    onConfirm?: (formData: FormData) => Promise<boolean>;
    /** 下载模板回调，业务方负责实际跳转或请求 */
    onDownloadTemplate?: () => void;
    /** 允许的文件后缀，默认 ['xlsx', 'xls'] */
    allowedExtensions?: string[];
    /** 最大文件大小(MB)，默认 10 */
    maxFileSizeMb?: number;
    /** Modal zIndex，默认 1009 */
    zIndex?: number;
}
/**
 * 通用单文件上传组件
 * 内部管理弹窗开关状态，触发按钮与弹窗作为一个整体对外暴露
 */
declare const UploadSingleFile: (props: UploadSingleFileProps) => JSX.Element;
export default UploadSingleFile;
