import { IAria2Config, IAria2Download, IAria2File, IAria2GlobalStat, IAria2Peer, IAria2Server, IAria2Uri } from '../interfaces/aria2.interface';
export default class Aria2Client {
    private readonly aria2;
    constructor(config?: IAria2Config);
    open(): Promise<Event>;
    close(): Promise<Event>;
    addUri(uris: string[], { dir }: {
        dir: string;
    }): Promise<Record<string, string>>;
    addTorrent(torrent: string): Promise<string>;
    addMetalink(metalink: string): Promise<string>;
    remove(gid: string): Promise<string>;
    forceRemove(gid: string): Promise<string>;
    pause(gid: string): Promise<string>;
    pauseAll(): Promise<'OK'>;
    forcePause(gid: string): Promise<string>;
    forcePauseAll(): Promise<'OK'>;
    unpause(gid: string): Promise<string>;
    unpauseAll(): Promise<'OK'>;
    tellStatus(gid: string, keys?: string[]): Promise<IAria2Download>;
    getUris(gid: string): Promise<IAria2Uri[]>;
    getFiles(gid: string): Promise<IAria2File[]>;
    getPeers(gid: string): Promise<IAria2Peer[]>;
    getServers(gid: string): Promise<IAria2Server[]>;
    tellActive(): Promise<IAria2Download[]>;
    tellWaiting(offset: number, num: number): Promise<IAria2Download[]>;
    tellStopped(offset: number, num: number): Promise<IAria2Download[]>;
    changePosition(gid: string, pos: number, how: 'POS_CUR' | 'POS_SET'): Promise<number>;
    changeUri(gid: string, fileIndex: number, delUris: string[], addUris: string[]): Promise<[number, number]>;
    getOption(gid: string): Promise<Record<string, unknown>>;
    changeOption(gid: string, options: Record<string, unknown>): Promise<'OK'>;
    getGlobalOption(): Promise<Record<string, unknown>>;
    changeGlobalOption(options: Record<string, unknown>): Promise<'OK'>;
    getGlobalStat(): Promise<IAria2GlobalStat>;
    purgeDownloadResult(): Promise<'OK'>;
    removeDownloadResult(gid: string): Promise<'OK'>;
    getVersion(): Promise<{
        version: string;
        enabledFeatures: string[];
    }>;
    getSessionInfo(): Promise<{
        sessionId: string;
    }>;
    shutdown(): Promise<'OK'>;
    forceShutdown(): Promise<'OK'>;
    saveSession(): Promise<'OK'>;
    onOpen(callback: CallableFunction): Promise<void>;
    onClose(callback: CallableFunction): Promise<void>;
    onDownloadStart(callback: CallableFunction): Promise<void>;
    onDownloadPause(callback: CallableFunction): Promise<void>;
    onDownloadStop(callback: CallableFunction): Promise<void>;
    onDownloadComplete(callback: CallableFunction): Promise<void>;
    onDownloadError(callback: CallableFunction): Promise<void>;
    onBtDownloadComplete(callback: CallableFunction): Promise<void>;
}
