declare namespace RTS {

  namespace STREAM {
    interface List {
      'Path': string,
      'State': number,
      'Subscribers': number,
      'Tracks': ['h264', 'aac'],
      'StartTime': number,
      'Type': 'HLSPuller',
      'BPS': Number
    }

    interface Detail {
      'StartTime': string,
      'WaitTimeout': number,
      'PublishTimeout': number,
      'WaitCloseTimeout': number,
      'Path': string,
      'Publisher': any,
      'State': number,
      'Subscribers': null,
      'Tracks': any,
      'AppName': string,
      'StreamName': string
    }
  }

  namespace PullStream {
    interface Detail {
      'ID': string,
      'Type': 'RTSPPuller', // 拉流类型
      'StartTime': string, // 开始时间
      'Args': Record<string, any>, // 拉流参数
      'StreamPath': string, // 流地址
      'RemoteURL': string, // 被拉流地址
      'ReConnectCount': number, // 重联次数
      'Transport': number
    }
  }

  namespace SUMMARY {
    interface Detail {
      'Address': string,
      'Memory': {
        'Total': number,
        'Free': number,
        'Used': number,
        'Usage': number
      },
      'CPUUsage': number,
      'HardDisk': {
        'Total': number,
        'Free': number,
        'Used': number,
        'Usage': number
      },
      'NetWork': [
        {
          'Name': string,
          'Receive': number,
          'Sent': number,
          'ReceiveSpeed': 0,
          'SentSpeed': 0
        }
      ]
    }
  }

  type protocol = 'RTSP' | 'RTMP' | 'HLS' | 'HDL' | 'GB28181'

  namespace GB2881 {
    interface Detail {
      'ID': string,
      'Name': string, // 名称
      'Manufacturer': string, // 制造商
      'Model': string, // 模式
      'Owner': string, // 所有者
      'RegisterTime': string, // 注册时间
      'ReConnectCount': string, // 重联次数
      'Status': string,
      'NetAddr': string, // 网络地址
      'GpsTime': string, // gps 时间
      'Longitude':string, // 经度
      'Latitude':string, // 纬度
    }
    interface Record {
      'DeviceID': string,
      'Name': string, // 名称
      'FilePath': string, // 文件地址
      'Address': string, // 地址
      'Owner': string, // 所有者
      'StartTime': string, // 注册时间
      'EndTime': string, // 重联次数
      'Secrecy': string,
      'Type': string // 网络地址
    }
  }
}
