declare module 'tccc-wx-sdk' {
  /**
   * 小程序登录
   * @param params
   */
  export function login(params: {
    jsCode: string;
    sdkAppId: string;
    dataEnc?: string;
    dataIv?: string;
    mobileEnc?: string;
    mobileIv?: string;
  }): Promise<{ errorCode: string; msg: string }>;

  /**
   * 检查小程序是否登录
   */
  export function checkLogin(params: { sdkAppId: string }): Promise<boolean>;

  /**
   * 发起音频通话
   */
  export function startCall({ channelId }: { channelId: string }): Promise<{ sessionId: string }>;
  /**
   * 挂断音频通话
   */
  export function endCall(): void;
  /**
   * 发起视频通话
   */
  export function startSession({ channelId }: { channelId: string }): Promise<{ sessionId: string }>;
  /**
   * 挂断视频通话
   */
  export function endSession(): void;

  /**
   * 静音
   */
  export function muteAudio(): void;
  /**
   * 取消静音
   */
  export function unmuteAudio(): void;

  /**
   * 切换声音输出方式
   * speaker	扬声器
   * ear	听筒
   */
  export function setSoundMode(mode: 'ear' | 'speaker'): void;

  /**
   * 启用摄像头
   */
  export function enableCamera(): void;
  /**
   * 禁用摄像头
   */
  export function disableCamera(): void;
  /**
   * 切换摄像头
   */
  export function switchCamera(): void;

  /**
   *  发送分机号
   * @param key 分机号
   */
  export function sendDigits(key: string): Promise<{ errorCode: string; msg: string }>;

  export type Events = 'sessionStart' | 'sessionEnded' | 'accepted' | 'error';
  export type SessionEnded = {
    sessionId: string;
    closeBy: 'seat' | 'client' | 'admin';
  };
  export type EventsResponse = SessionEnded;
}
