interface Level {
  name: string,
  desc: string
}

interface Stage {
  name: string // 学段名
  desc: string // 学段描述
}

interface Able {
  name: string,
  value: string
}

interface Bank {
  bankName: string // 题库名称
  quesCount: string // 题卡数量
  bankCover: string // 题库图标
  useState: 0 | 1 // 0 禁用 1 使用
} 



declare namespace API {

  type status = 200 | 500 | 401 | 403

  type Response<T> = {
    data: T,
    result?: any,
    message: string,
    status: status
  }

  type Color = 'red' | 'blue' | "green" | 'yellow' | 'orange' | 'purple'

  interface User {
    token: string,
    wisdomCoin: number
  }

  interface Card {
    useState: 0 | 1 // 題卡状态 0 未启用 | 1 已启用
    cardType:  0 | 1 // 题卡类型 0 四钮 | 1 六钮
    cardName: string // 题卡名称
    cardDesc: string // 题卡题目
    level: Level // 难度
    cardAble: Able // 能力点
    opraUser: string // 最后操作人
    stage: Stage // 学段
    audio: string
    board: Board
    tipsButton: string
  }

  interface Board {
    quesUrl: string
    ansUrl: string
    buttons: {x: string, y: string, color: Color}[]
    ansList: {pos: 0 | 1 | 2 | 3 | 4 | 5 , color: Color, ans: Color, name: string}[]
    tipsButton: number
  }

  interface Collect {
    id: string,
    collectionName:  string // 题集名称
    collectionType:  0 | 1 // 题集类型 0 四钮 | 1 六钮
    ansType: 0 | 1 // 答题模式 0 顺序 | 1 随机
    cardIds: string[]
  }
  interface Practice {
    accuracy: number
    answerItems: []
    createTime: string
    id: string
    rightCount: number
    scoreId: string
    totalCount: number
    totalTime: number
    userAnswer: []
  }
  
  interface UseSchedulerFastCall {
    timeId: number | null,
    start: () => void
    pause: () => void
    stop: () => void
    onPlaying: () => void
  }

  interface LearnPlanRecords {
    capability: string,
    correctQuantity: number,
    totalQuantity: number
    wrongCount: number
  }

  interface P {
    submitUrl: string,
    data: {
      mode: CardModeEnum,
      collectionId: string,
      cardId?: string,
      opraMode: OpraModeEnum,
      remainderWisdomCoin: number,
      userWisdomCoin: number,

    },
    attach: {
      itemId: string,
      recordId: string
    }
  }

}



declare namespace DEVICE {
  type Platform = 'web' | 'mp-weixin'
}

declare module "hammerjs"




