import type { IRequestInterceptor, IRawRequest, ICocosLoginInfoStorage } from '../../types';
export interface ICocosLoginInfoParamOptions {
    /** 小游戏 appid，作为 url query 透传给后台 */
    appid: string;
    /** 登录平台类型，默认 3（微信小游戏） */
    platform?: number;
    /** 登录类型 _ltype，默认 tiploginwxproc */
    ltype?: string;
    /** 登录态存储（wx.getStorageSync / wx.setStorageSync 或自定义） */
    storage: ICocosLoginInfoStorage;
    /** 存储登录态的 key，默认 cocos_login_info */
    storageKey?: string;
    /**
       * 无登录态时，业务方提供的获取 wx.code 方法（一次性）
       * 通常是 wx.login 的 Promise 化封装
       */
    getLoginCode?: () => Promise<{
        code: string;
    }>;
    loginMp: () => Promise<void>;
    isTestEnv: () => boolean;
}
/** 存储登录态的默认 key */
export declare const COCOS_LOGIN_INFO_STORAGE_KEY = "cocos_login_info";
/**
 * Cocos 端登录态参数拦截器
 *
 * 规则：
 *   - 公共 query：tstamp（每次都带，防缓存）
 *   - 有登录态 → body.login_info = storage.get(...)，url 不再拼登录相关 query
 *   - 无登录态 → url 追加 appid / platform / _ltype，并调 getLoginCode() 拿 wx.code 塞进 url 的 code query
 *
 * 幂等：每次基于 CocosHostInterceptor 产出的 `param.url` 拼 query，
 * decorator 重试时 cocos-host 会用 __cocosOriginUrl 重拼 URL，
 * 所以本拦截器不会累加 query。
 *
 * 参考 pmd-npm/packages/business/src/network/interceptor/request/cocos/cocosLoginInfoParamInterceptor.ts
 */
export declare class CocosLoginInfoParamInterceptor implements IRequestInterceptor {
    private options;
    constructor(options: ICocosLoginInfoParamOptions);
    interceptor(param: IRawRequest): Promise<[boolean, IRawRequest]>;
}
