export interface Task {
    id: string;
    priority: number;
    action: () => Promise<boolean>;
    retries: number;
}
export type DownloadManagerOptions = {
    method?: "simple" | "queue" | "thread";
    concurrencyLimit?: number;
    retries?: number;
    consoleLog?: boolean;
    downloadFolder?: string;
    getFileName?: (url: string) => string;
    onBeforeDownload?: (url: string, file: string, fileName: string) => Promise<void>;
    onAfterDownload?: (url: string, file: string, fileName: string) => Promise<void>;
    overWriteFile?: boolean;
    requestOptions?: RequestInit;
    stream?: boolean;
    backOff?: boolean;
    timeout?: number;
    maxWorkers?: number;
};
export type EmitDataType = {
    message: string;
    url?: string;
    fileName?: string;
    file?: string;
    error?: unknown;
    progress?: string;
    totalSize?: number;
    downloaded?: number;
    speed?: string;
};
export type WorkerTask = {
    id: string;
    fileName: string;
    url: string;
    options: DownloadManagerOptions;
};
