import { RunTime, RunTimeData } from './runTime'

export interface WxEnv {
  getCurrentPages(): number // 获取当前的页面数

  canIUse(schema: string): boolean

  navigateTo(params: {
    url: string
    events?: {
      [eventName: string]: Function
    }
    success?: Function
    fail?: Function
    complete?: Function
  }): any

  redirectTo(params: { url: string; success?: Function; fail?: Function; complete?: Function }): any

  navigateBack(params?: {
    delta?: number // 返回的页面数，如果 delta 大于现有页面数，则返回到首页 默认为1
    success?: Function
    fail?: Function
    complete?: Function
  }): any
}

export default class WxMpRuntime extends RunTime {
  private _wxEnv: any
  constructor(runTimeData?: RunTimeData) {
    super(runTimeData)
    // @ts-ignore
    this._wxEnv = wx
    // @ts-ignore
    this._wxEnv = getCurrentPages
  }

  get g() {
    return this._wxEnv
  }
}
