import { Deezer, type APIAlbum, type APITrack } from "deezer-sdk";
import { DownloadObject } from "./download-objects/DownloadObject.js";
import type { Listener } from "./types/listener.js";
import type { Settings } from "./types/Settings.js";
import Track from "./types/Track.js";
export declare class Downloader {
    dz: Deezer;
    downloadObject: DownloadObject;
    settings: Settings;
    bitrate: number;
    listener: Listener;
    playlistCovername?: string;
    playlistURLs: {
        url: string;
        ext: string;
    }[];
    coverQueue: Record<string, string>;
    constructor(dz: Deezer, downloadObject: DownloadObject, settings: Settings, listener: Listener);
    log(data: any, state: any): void;
    warn(data: any, state: any, solution: any): void;
    start(): Promise<void>;
    download(extraData: {
        trackAPI: APITrack;
        albumAPI?: APIAlbum;
        playlistAPI?: any;
    }, track?: Track): Promise<any>;
    downloadWrapper(extraData: {
        trackAPI: APITrack;
        albumAPI?: APIAlbum;
        playlistAPI?: any;
    }, track?: Track): any;
    afterDownloadErrorReport(position: any, error: any, itemData?: {}): void;
    afterDownloadSingle(track: any): Promise<void>;
    afterDownloadCollection(tracks: any): Promise<void>;
}
//# sourceMappingURL=downloader.d.ts.map