export interface QbitTorrentInfo {
  hash: string;
  name: string;
  size: number;
  progress: number;
  dlspeed: number;
  upspeed?: number;
  state: string;
  magnet_uri?: string;
  completed?: number;
  tags?: string;
  category?: string;
  tracker?: string;
  num_seeds?: number;
  num_leechs?: number;
  added_on?: number;
  seeding_time?: number;
  uploaded?: number;
}

export interface QbitTransferInfo {
  dl_info_speed: number;
  dl_info_data: number;
  up_info_speed: number;
  up_info_data: number;
  connection_status: string;
}

export interface QbitTorrentProperties {
  save_path?: string;
  completion_on?: number;
  comment?: string;
  total_size?: number;
  piece_size?: number;
}

export interface QbitPeerList {
  peers: Record<
    string,
    {
      ip: string;
      port: number;
      client: string;
      progress: number;
      dl_speed: number;
      up_speed: number;
    }
  >;
}

export interface QbitCapabilities {
  version: string;
  hasPeersEndpoint: boolean;
  hasBanEndpoint: boolean;
}

export interface QbitCategory {
  name?: string;
  savePath?: string;
}
