import type { QQTicketInfo } from '../../qq-mp/types';
export declare function getLoginCode(): Promise<{
    code: string;
}>;
/**
 * 通过 code 换取小程序登录态。
 *
 * code 来源优先级（高 → 低）：
 *   1. 直接传入的 `code` 参数（如 QQ App 下 `plugin.login()` 拿到的 QQ code）
 *   2. 自定义 `getCode` 函数（业务可注入任意 code 提供者）
 *   3. 默认调用 `wx.login()` 拿微信 code
 *
 * 配合 `_ltype` 即可同时支持微信登录（`tiploginwxproc`）和 QQ 登录（`tiploginqqproc`）。
 *
 * @example 微信登录（默认行为，向后兼容）
 * loginMp({ url, appid });
 *
 * @example QQ App 下用 plugin.login() 拿到的 code 走 QQ 登录
 * import { qqPluginLogin } from 't-comm/es/qq-mp';
 * const { code } = await qqPluginLogin();
 * loginMp({ url, appid, _ltype: 'tiploginqqproc', code });
 *
 * @example 注入自定义 code 提供者
 * loginMp({ url, appid, _ltype: 'tiploginqqproc', getCode: qqPluginLogin });
 */
export declare function loginMp({ url, method, header, body, appid, _ltype, storageKey, onLoginInfo, storage, code, getCode, qqTicketInfo, }: {
    url: string;
    appid?: string;
    method?: 'POST' | 'GET' | 'PUT' | 'DELETE';
    header?: any;
    body?: Record<string, any>;
    _ltype?: 'tiploginwxproc' | 'tiploginqqproc';
    onLoginInfo?: (loginInfo: Record<string, any>) => void;
    storage?: any;
    storageKey?: string;
    /**
     * 外部已经拿到的 code（如 `plugin.login()` 拿到的 QQ code、`wx.login()` 拿到的微信 code）。
     * 传了就跳过内部的 `wx.login()` 调用。优先级高于 `getCode`。
     */
    code?: string;
    /**
     * 自定义 code 提供者。未传 `code` 时使用，未传 `getCode` 时回退到默认的 `wx.login()`。
     * 例如 QQ App 下可传入 `qqPluginLogin`。
     */
    getCode?: () => Promise<{
        code: string;
    }>;
    qqTicketInfo?: QQTicketInfo;
}): Promise<void>;
