import { IcheckAuthOpts, IgetVerifyOpts } from './types'

declare namespace PhoneServer {
    /**
     * PhoneNumberServer
     */
    export class PhoneNumberServer {
        /**
         * 校验身份信息
         * @param opts 传入的参数checkAuthOpts
         */
        checkAuthAvailable(opts: IcheckAuthOpts): void;

        /**
         * 获取本机号码校验token
         * @returns {object}
         */
        getVerifyToken(opts: IgetVerifyOpts): object;

        /**
         * 设置日志是否打印更多信息  调试时开启上线关闭
         * @param isEnable
         */
        setLoggerEnable(isEnable: boolean): void;

       /**
        * 获取sdk版本号
        * @returns {string}
        */
        getVersion(): string;

        /**
         * 是否上传日志埋点 默认上传
         * @param isEnable
         */
        setUploadEnable(isEnable: boolean): void

    }

    /**
     * PhoneNumberServer错误枚举
     */
    export enum Errors {
        /**
         * 未知异常
         */
        ERROR_UNKNOW = 600010,

        /**
         * 校验接入方身份信息失败
         */

        ERROR_CHECK_AUTH = 600025,

        /**
         * 环境检测错误
         * @type {number}
         */
        ERROR_CHECK_ENV =600008,

        /**
         * 获取token失败
         */

        ERROR_GET_TOKEN = 600011,

        /**
         * 运营商维护升级，该功能不可用
         */

        ERROR_UNAVAILABLE = 600013,

        /**
         * 运营商维护升级，该功能已达最大调用次数
         */

        ERROR_MAX_TIME = 600014,

        /**
         * 请求超时
         */

        ERROR_TIMEOUT = 600015,

    }


}

export = PhoneServer;
export as namespace PhoneServer;
