import { Download } from '@/utils';
export declare function useDownloader(): {
    transformUri: (file: Download) => string;
    download: (file: Download) => void;
    downloadAll: (files: Download[], zipname: string) => void;
    forFile: (file: Download) => {
        download: () => void;
        downloading: boolean;
        indicator: (() => import("vue").VNode) | import("vue").DefineComponent<{
            size?: number;
        }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
            size?: number;
        }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
        tooltip: string;
        progress: number;
        progressIcon: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        hasProgress: boolean;
        href: string;
        uri: string;
        filename: string;
    };
    forFiles: (files: Download[]) => {
        download: () => void;
        downloading: boolean;
        indicator: (() => import("vue").VNode) | import("vue").DefineComponent<{
            size?: number;
        }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
            size?: number;
        }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
        tooltip: string;
        progress: number;
        progressIcon: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        hasProgress: boolean;
        href: string;
        uri: string;
        filename: string;
    }[];
    forSlice: (files: Download[]) => {
        downloadAll: (zipname: string) => void;
        downloading: boolean;
        indicator: (() => import("vue").VNode) | import("vue").DefineComponent<{
            size?: number;
        }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
            size?: number;
        }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
        tooltip: string;
        progress: number;
        progressIcon: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        hasProgress: boolean;
    };
    isDownloading: (file: Download) => boolean;
    getIndicator: (file: Download) => (() => import("vue").VNode) | import("vue").DefineComponent<{
        size?: number;
    }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
        size?: number;
    }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
    getTooltip: (file: Download) => string;
    getProgress: (file: Download) => number;
    getProgressIcon: (file: Download) => () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
        [key: string]: any;
    }>;
    hasProgress: (file: Download) => boolean;
};
