
export interface CoolinkRetCode {
  code: number,
  msg?: string,
}

export interface CoolinkAppInfo extends CoolinkRetCode {
  language: string,
  versionName: string,
  versionCode: number,
  frameworkVersion: number,
  miniAppCode: string,
  miniAppVersion: string,
  miniAppExtParams: any,
}

export interface CoolinkSystemInfo extends CoolinkRetCode {
  os: string,
  iosVersion: string,
  apiLevel: string,
  deviceId: string,
  width: number,
  height: number,
  brand: string,
  model: string,
  panel: string,
  mac: string,
  name: string,
  chip: string,
  activeId: string,
}

export interface CoolinkResPath extends CoolinkRetCode {
  path: string,
}

export interface CoolinkLoginStatus extends CoolinkRetCode {
  loginStatus: boolean
}

export interface CoolinkRetOpenId extends CoolinkRetCode {
  openId: string
}

export interface CoolinkRetAccessToken extends CoolinkRetCode {
  accessToken: string
}

export interface CoolinkRetUserInfo extends CoolinkRetCode {
  avatar?: string,
  gender?: string,
  mobile?: string,
  nickName?: string,
  externalInfo?: string,
}

export interface CoolinkRetValue extends CoolinkRetCode {
  value: string
}

export interface CoolinkSendReportParam {
  eventName: string, 
  eventParams: string, 
  productId?: string
}

export interface CoolinkHttpRequestParam {
  url: string,
  method: string,
  header?: string,
  body?: string,
}

export interface CoolinkRetHttp extends CoolinkRetCode {
  httpCode: number,
  content: string,
}

export interface CoolinkRetGetOfficialDomain extends CoolinkRetCode {
  list: string[]
}

export interface CoolinkStartActionParams {
  type?: string,
  mode?: string,
  value?: string,
  packageName?: string,
  extras?: string,
  uri?: string,
}

export interface CoolinkVibrateDeviceParams {
  ms: number,
  swing: number,
}

export interface CoolinkStartWechatAppletParam {
  id : string,
  path: string,
}

export interface CoolinkRetConnectId extends CoolinkRetCode {
  connectId: string
}

export interface CoolinkRetIsConnected extends CoolinkRetCode {
  connected: boolean
}

export interface CoolinkRetDeviceList extends CoolinkRetCode {
  list: string[]
}

export interface CoolinkRetRemoteDevice extends CoolinkRetCode {
  connectId: string,
  deviceId: string,
  deviceName?: string,
  deviceType?: string,
  videoSource?: string,
  deviceChip?: string,
  deviceModel?: string,
}

export interface CoolinkSendMessageParams {
  id: string,
  content:any,
  remoteClientID: string,
  appTargetID: string,
  appSourceID: string,
  type: string,
  extra: any,
  reply: boolean,
  broadcast: boolean,
}

export interface CoolinkCommonReceiverParams {
  callback: Function,
}

export interface CoolinkRegisterMessageReceiverParams {
  miniAppCode: string,
  callback: Function,
}

export interface CoolinkGetRemoteAppStateParams {
  packageName: string
}

export interface CoolinkRetState extends CoolinkRetCode {
  state: string
}

export interface CoolinkInitFloatWinParams {
  icon: string,
  title: string,
  callback: Function
}

export interface CoolinkIsMpForegroundRet extends CoolinkRetCode {
  foreground: boolean
}

export interface CoolinkRetHttpHostMapping extends CoolinkRetCode {
  hostMapping: string
}

export interface CoolinkRegisterMoreInfoParams {
  miniAppCode: string,
  moreIcon: string[],
  callback: Function,
}
