import { Logger } from 'common-stuff'; import { TorrentAdapter, TorrentAdapterTorrent, TorrentAdapterFile } from '.'; export interface TorrentClientTorrent extends TorrentAdapterTorrent { created: Date; updated: Date; infoHash: string; link: string; files: TorrentClientFile[]; } export interface TorrentClientFile extends TorrentAdapterFile { type: string; } export interface TorrentClientConfig { useDefaultTrackers?: boolean; announce?: string[]; urlList?: string[]; peerAddresses?: string[]; uploadLimit?: number; downloadLimit?: number; ttl: number; path: string; logger: Logger; } export declare class TorrentClient { protected torrents: Record; protected cleanLocked: boolean; protected adapter: TorrentAdapter; protected isLoading: Promise; protected config: TorrentClientConfig; constructor(config: TorrentClientConfig, adapter?: TorrentAdapter); protected loadAndWait(): Promise; getTorrents(): TorrentClientTorrent[]; getTorrent(infoHash: string): TorrentClientTorrent | undefined; removeTorrent(infoHash: string): Promise; addTorrent(link: string): Promise; destroy(): Promise; protected checkForExpiredTorrents(): Promise; }