import { Signal } from '@tempots/dom';
export interface Progress {
    type: 'progress';
    value: number;
}
export interface Undetermined {
    type: 'undetermined';
}
export interface Done {
    type: 'done';
    file: File;
}
export interface DownloadError {
    type: 'error';
    error: Error;
}
export type DownloadResult = Progress | Undetermined | Done | DownloadError;
export declare const downloadUrl: (url: string, filename?: string) => Promise<void>;
export declare const downloadContent: (content: string | Uint8Array<ArrayBuffer>, filename: string, type?: string) => void;
export declare const downloadUrlAndMonitor: (url: string) => {
    signal: Signal<DownloadResult>;
    cancel: () => void;
};
export declare const downloadFile: (file: File) => void;
