import React from 'react';
import type { CnRequestConfig } from 'cn-request';
import type { CommonProps, IRequestConfig } from '@cainiaofe/cn-ui-common';
import type { CnButtonProps } from "../../cn-button";
export interface CnDownloadProps extends CommonProps, CnButtonProps {
    /**
     * 自定义下载
     */
    customRender?: (download: () => Promise<void>) => React.ReactNode;
    /**
     * 下载按钮名称
     */
    buttonText?: string;
    /**
     * 下载文件名称，默认取 url.substring(url.lastIndexOf('/'))
     */
    fileName?: string;
    /**
     * 下载链接，优先级高于service
     */
    url?: string;
    /**
     * 获取下载链接的请求配置或自定义获取oss下载链接的函数方法，优先级低于url参数
     * @deprecated 请使用 requestConfig (since version 0.12.40)
     */
    service?: CnRequestConfig | (() => Promise<string>);
    /**
     * 获取OSS上传凭证请求配置或请求方法，优先级低于url参数
     */
    requestConfig?: IRequestConfig<string>;
    /**
     * 下载异常回调函数
     * 当有异常且没有传该属性时，组件内部会通过CnMessage抛出异常
     */
    onError?: (e: unknown) => void;
    /**
     * 触发下载后回调函数
     */
    onSuccess?: (e: unknown) => void;
    children?: React.ReactNode;
}
