import { inspect } from 'xshell'; export * from './resume-data'; export declare class Peer { country: string; ip: string; reverse_dns: string; utp: number; port: number; client: string; flags: string; /** 0 - 1000 */ progress: number; download_speed: number; upload_speed: number; requests_out: number; requests_in: number; waited: Date; uploaded: number; downloaded: number; hash_error: number; /** 用户 */ peer_download_speed: number; max_upload_speed: number; max_download_speed: number; queued: number; inactive: number; relevance: number; torrent: Torrent; should_block: boolean; constructor(raw_data: (string | number)[], torrent: Torrent); to_str(): string; format_client(): string; format_download_speed(): string; format_upload_speed(): string; format_downloaded(): string; format_ipinfo(): string; [inspect.custom](): string; } export declare enum Status { STARTED = 1, CHECKING = 2, ERROR = 16, PAUSED = 32, QUEUED = 64 } export declare class Torrent { hash: string; status: number; name: string; /** bytes */ size: number; /** 0 - 1000 */ progress: number; /** uTorrent 累计下载量 bytes */ downloaded: number; /** uTorrent 累积上传量 bytes */ uploaded: number; /** 需除以 1000 ? */ ratio: number; /** bytes/second */ upload_speed: number; /** bytes/second */ download_speed: number; /** estimated time of arrival (seconds) */ time_remaining: number; label: string; peers_connected: number; peers_in_swarm: number; seeds_connected: number; seeds_in_swarm: number; availability: number; /** -1 表示未在队列中 */ queue_position: number; /** 剩余大小 */ remaining: number; download_url: string; rss_feed_url: string; status_message: string; stream_id: string; date_added: Date; date_completed: Date; app_update_url: string; save_path: string; /** status 按位与 Status 相与并结合 progress 信息得到 */ state: ['下载' | '做种' | '暂停' | '停止' | '完成' | '检查' | '错误' | '排队', string]; utorrent: UTorrent; peers: Peer[]; constructor(raw_data: (string | number)[], utorrent: UTorrent); get_peers(): Promise; [inspect.custom](): string; to_str(): string; format_upload_speed(): string; format_download_speed(): string; format_state(): string; format_time_remaining(): string; } export declare class UTorrent { root_url: string; username: string; password: string; fp_ipfilter: string; /** 启动时 ipfilter 中已有的数据 */ static_ipfilter: string; /** 检测 peers 并屏蔽的时间间隔 */ interval: number; /** 间隔 interval 秒自动重置当前时间间隔内被动态屏蔽的 IP */ interval_reset: number; state: 'INIT' | 'IDLE' | 'RUNNING'; state_resetting: 'INIT' | 'IDLE' | 'RUNNING'; print: { /** ['下载'] */ torrents: '下载' | '做种' | '所有' | boolean; /** [true] */ peers: boolean; }; token: string; blocked_ips: Set; torrents: Torrent[]; static launch(exe: string): Promise; private constructor(); static connect(options: { root_url: string; username: string; password: string; fp_ipfilter: string; interval: number; interval_reset: number; /** print?: true */ print?: boolean | { /** ['下载'] */ torrents: '下载' | '做种' | '所有' | boolean; /** [true] */ peers: boolean; }; }): Promise; /** get token */ get_token(): Promise; rpc({ api, params, method }?: { api?: string; params?: Record; method?: 'GET' | 'POST'; }): Promise; get_torrents(): Promise; get_peers(torrents?: Torrent[]): Promise; print_peers(peers?: Peer[], { limit }?: { limit?: number; }): Promise; print_torrents({ torrents, filter }?: { torrents?: Torrent[]; filter?: (torrent: Torrent) => boolean; }): Promise; print_blockeds(): Promise; block_peers(torrents?: Torrent[]): Promise; reload_ipfilter(): Promise; reset_ipfilter(): Promise; reset_blocked_ips(): Promise; find_torrent(name_pattern: string | RegExp): Torrent; start_blocking(): Promise; start_resetting_blocked_ips(): Promise; stop_blocking(): Promise; hide_display(): void; show_display(): void; } export default UTorrent;