/**
 * qq-wxmini-plugin 微信小程序插件封装
 *
 * 背景：QQ 用户无法直接打开微信小程序，但微信提供了 qq-wxmini-plugin 插件，
 * 让 QQ 用户能够以 QQ 身份访问微信小程序。本文件封装插件初始化与环境检测。
 *
 * 使用前置条件：
 * 1. 在微信公众平台后台添加 qq-wxmini-plugin 插件授权
 * 2. 在 manifest.json / app.json 的 plugins 节点声明：
 *    {
 *      "qq-wxmini-plugin": {
 *        "version": "1.0.7",
 *        "provider": "wx41f6784ad4052201"
 *      }
 *    }
 */
/**
 * QQ 插件接口（最小可用子集）
 */
export interface QQWXMiniPlugin {
    /** 初始化插件（必须先调用） */
    initPlugin(wx: any): void;
    /** 判断当前是否为 QQ 环境（QQ 用户通过插件访问微信小程序） */
    isQQEnv(): boolean;
    /**
     * QQ 环境下直接拿 QQ 登录 code（无需跳腾讯 QQ 小程序）
     *
     * 文档：https://doc.weixin.qq.com/doc/w3_ANAAAgaEACcCN60gP1LZiRDujSMor
     */
    login?(): Promise<{
        code: string;
    }>;
    [key: string]: any;
}
/**
 * 加载并初始化 qq-wxmini-plugin
 *
 * 内部带缓存，重复调用安全。
 *
 * @returns 插件实例；非微信小程序环境或未安装插件时返回 undefined
 */
export declare function initQQMiniPlugin(): QQWXMiniPlugin | undefined;
/**
 * 获取插件实例（不重复初始化时使用）
 */
export declare function getQQWXMiniPlugin(): QQWXMiniPlugin | undefined;
/**
 * 检测当前是否为 QQ 环境（QQ 用户通过 qq-wxmini-plugin 访问微信小程序）
 *
 * 注意：必须先调用 initQQMiniPlugin（本函数内部会兜底调用）。
 *
 * @returns true 表示 QQ 环境；非微信小程序环境或插件未安装时返回 false
 */
export declare function checkIsQQEnv(): boolean;
/**
 * QQ 环境下若检测到微信登录态则清除 storage
 *
 * 由调用方提供「当前是否为微信登录态」的判断函数，
 * 以避免本工具与具体 cookie/storage 字段耦合。
 *
 * 典型用法：
 * ```ts
 * clearWxLoginStorageIfQQEnv({
 *   isWxLoggedIn: () => cookie.get('tip_utype') === '2',
 * });
 * ```
 *
 * @param options.isWxLoggedIn 判断当前是否为微信登录态（必填）
 * @param options.clearStorage 自定义清除函数，默认 wx.clearStorageSync
 * @param options.shouldForceQQ 是否强制 QQ 登录态（即在 QQ 环境下
 *   一旦检测到微信登录态就清掉 storage 让用户重走 QQ 登录）。
 *
 *   默认 `() => true`（保留旧行为）。
 *
 *   若业务希望「QQ App 下也允许用户手动用微信账号登录」，请传入 `() => false`，
 *   或基于业务自身的「用户是否手动切到微信账号」状态返回值。
 */
export declare function clearWxLoginStorageIfQQEnv(options: {
    isWxLoggedIn: () => boolean;
    clearStorage?: () => void;
    shouldForceQQ?: () => boolean;
}): boolean;
/**
 * QQ 环境下直接通过 qq-wxmini-plugin 拿 QQ 登录 code
 *
 * 适用场景：用户已在 QQ App 中（即 `checkIsQQEnv() === true`），
 * 此时无需 `wx.navigateToMiniProgram` 跳腾讯 QQ 小程序，
 * 可直接调用插件的 `plugin.login()` 同步拿到 QQ code，
 * 再交给业务后台用 `_ltype=tiploginqqproc` 换登录态。
 *
 * @returns code 字符串；插件不可用或登录失败时 reject
 */
export declare function qqPluginLogin(): Promise<{
    code: string;
}>;
/**
 * 通过 wx.login 拿微信登录 code
 *
 * 适用场景：微信宿主下走微信登录，或 QQ App 下用户主动选择「微信账号登录」时。
 * 拿到 code 后由业务后台用 `_ltype=tiploginwxproc` 换登录态。
 *
 * @returns code 字符串；wx.login 不可用或失败时 reject
 */
export declare function wxLogin(): Promise<{
    code: string;
}>;
