import { File, Torrent } from "./models"; /** * Torrent input */ export declare type TorrentInput = Torrent | string | Array | ITorrentList; /** * The possible access settings */ export declare enum Access { ReadOnly = "R", WriteOnly = "W", ReadWrite = "Y" } /** * Defined actions */ export declare enum Action { AddFile = "add-file", AddUrl = "add-url", ConfigureRemote = "configureremote", ForceStart = "forcestart", GetFiles = "getfiles", GetSessions = "getsessions", GetSettings = "getsettings", GetTransferHistory = "getxferhist", List = "list", ListDirectories = "list-dirs", Logout = "logout", Pause = "pause", Recheck = "recheck", Remove = "remove", RemoveData = "removedata", RemoveTorrent = "removetorrent", RemoveTorrentData = "removetorrentdata", ResetTransferHistory = "resetxferhist", SetFilePriority = "setprio", SetSetting = "setsetting", Start = "start", Stop = "stop", Unpause = "unpause" } /** * The possible torrent priorities */ export declare enum Priority { Skip = 0, Low = 1, Normal = 2, High = 3 } /** * The possible status bit-flags */ export declare enum TorrentStatus { Started = 1, Checking = 2, StartAfterChecking = 4, Checked = 8, Error = 16, Paused = 32, Queued = 64, Loaded = 128 } /** * Contains the version info of the current uTorrent instance */ export interface IVersion { product_code: string; ui_version: string; engine_version: string; major_version: string; minor_version: string; user_agent: string; version_date: string; device_id: string; peer_id: string; } /** * A single uTorrent setting */ export interface ISetting { type: Boolean | String | Number; value: boolean | string | number; access: Access; } /** * The current uTorrent settings */ export interface ISettings { build: number; settings: { [name: string]: ISetting; }; } /** * Represents a user session */ export interface ISession { guid: string; created: Date; updated: Date; peer_ip: string; sock_ip: string; reported_ip: string; user_agent: string; remote: boolean; custom: string; } /** * A container for a listed torrent */ export interface ITorrent { hash: string; status: TorrentStatus; name: string; size: number; progress: number; downloaded: number; uploaded: number; ratio: number; upload_speed: number; download_speed: number; time_remaining: number; label: string; peers_connected: number; peers_in_swarm: number; seeds_connected: number; seeds_in_swarm: number; availability: number; queue_order: number; download_url: string; rss_feed_url: string; status_message: string; stream_id: string; date_added: number; date_completed: number; app_update_url: string; } /** * Represents an RSS feed update */ export interface IRssUpdate { name: string; name_full: string; url: string; quality: number; codec: number; timestamp: number; season: number; episode: number; episode_to: number; feed_id: number; repack: boolean; in_history: boolean; } /** * Represents the RSS feed */ export interface IRssFeed { id: number; enabled: boolean; use_feed_title: boolean; user_selected: boolean; programmed: boolean; download_state: number; url: string; next_update: number; history: Array; } /** * Represents an RSS filter */ export interface IRssFilter { id: number; flags: number; name: string; filter: string; not_filter: string; directory: string; feed: number; quality: number; label: string; postpone_mode: number; last_match: number; smart_ep_filter: number; repack_ep_filter: number; episode_filter_str: string; episode_filter: boolean; resolving_candidate: boolean; } /** * Represents the torrent list returned by uTorrent */ export interface ITorrentList { torrents: { [hash: string]: Torrent; }; rss_feeds: Array; rss_filters: Array; cache_id: string | number; labels: { [key: string]: number; }; } /** * Represents the torrent list returned by uTorrent when using a cache ID */ export interface ITorrentListCache { cache_id: string | number; torrents: { changed: Array; removed: Array; }; rss_feeds: { changed: Array; removed: Array; }; rss_filters: { change: Array; removed: Array; }; } /** * Represents a single file's information from a torrent */ export interface IFile { id: number; name: string; size: number; downloaded: number; priority: Priority; first_piece: number; num_pieces: number; streamable: boolean; encoded_rate: number; duration: number; width: number; height: number; stream_eta: number; streamability: number; } /** * Represents a file list for a torrent returned by uTorrent */ export interface IFileList { [torrentHash: string]: Array; }