import type { AxiosResponse } from 'axios';
export interface DownloadOptions {
    /** 自定义文件名（可选）。如果想保证文件下载顺序，推荐使用 getUrlExtension 自行修改文件名 */
    filename?: string;
}
export interface DateownloadZipItem {
    url: string;
    /** 自定义文件名（可选）。如果想保证文件下载顺序，推荐使用 getUrlExtension 自行修改文件名 */
    filename?: string;
}
export interface DownloadFolderItem {
    url: string;
    /** 资源所在文件夹名称多级使用 / 隔开 例如：一级文件夹/二级文件夹/三级文件夹 */
    folder?: string;
    /** 自定义文件名（可选）。如果想保证文件下载顺序，推荐使用 getUrlExtension 自行修改文件名 */
    filename?: string;
}
export declare const useDownload: () => {
    downloadByUrl: (url: string, options?: DownloadOptions) => Promise<void>;
    downloadByRes: (res: AxiosResponse<any, any>, options?: DownloadOptions) => Promise<void>;
    downloadToZip: (fileList: DateownloadZipItem[], filename: string) => Promise<unknown>;
    downloadFolderToZip: (fileList: DownloadFolderItem[], zipName?: string) => Promise<boolean>;
};
/**
 * 从 URL 中提取文件名
 * @param url 文件URL
 * @returns 文件名
 */
export declare const getUrlFilename: (url: string) => string;
/**
 * 从文件名中提取扩展名
 * @param filename 文件名
 * @returns 扩展名（包含.）或空字符串
 */
export declare const getFileExtension: (filename: string) => string;
/**
 * 确保文件名包含正确的扩展名
 * 如果传入的 filename 没有扩展名，则从 URL 中提取扩展名并追加
 * @param filename 传入的文件名
 * @param url 文件URL
 * @returns 带有扩展名的文件名
 */
export declare const ensureFilenameWithExtension: (filename: string | undefined, url: string) => string;
/**
 * 从 URL 中提取文件扩展名
 * @param url 文件URL
 * @returns 文件扩展名
 * 例如：https://example.com/path/to/image.png?token=abc 返回 .png
 */
export declare const getUrlExtension: (url: string) => string;
