/**
 * 注册登录解决方案配置
 * 根据不同渠道配置不同的接口地址和参数
 */
/**
 * API 配置接口
 */
export interface ApiConfig {
    url: string;
    method: 'GET' | 'POST' | 'PUT' | 'DELETE';
    transformParams?: (params: any) => any;
    transformResponse?: (response: any) => any;
    options?: Record<string, any>;
}
/**
 * 渠道配置接口
 */
export interface ChannelConfig {
    sendEmailVerificationCode: ApiConfig;
    sendEmailLoginCode: ApiConfig;
    sendSmsRegisterCode: ApiConfig;
    sendEmailRegisterLink: ApiConfig;
    verifyEmailRegistrationLink: ApiConfig;
    emailPasswordLogin: ApiConfig;
    emailCodeRegister: ApiConfig;
    phoneCodeRegister: ApiConfig;
    resendEmailRegisterLink: ApiConfig;
    checkEmailLinkCode: ApiConfig;
    sendSmsLoginCode: ApiConfig;
    phoneCodeLogin: ApiConfig;
    guestLogin: ApiConfig;
    checkEmailExists: ApiConfig;
    checkEmailCode: ApiConfig;
    checkMobileCode: ApiConfig;
    phonePasswordLogin: ApiConfig;
    sendPasswordResetEmail: ApiConfig;
    sendPasswordResetSms: ApiConfig;
    sendResetPasswordLink: ApiConfig;
    checkResetPasswordCode: ApiConfig;
    resetPasswordByCode: ApiConfig;
    resetPasswordByEmail: ApiConfig;
    resetPasswordByPhone: ApiConfig;
    verifyCode: ApiConfig;
    register: ApiConfig;
    login: ApiConfig;
    oauthLogin: ApiConfig;
    validateToken: ApiConfig;
    logout: ApiConfig;
    getCountries: ApiConfig;
    facebookLogin: ApiConfig;
    appleLogin: ApiConfig;
}
/**
 * 渠道配置映射
 */
export declare const channelConfigMap: Record<string, ChannelConfig>;
/**
 * 获取渠道配置
 */
export declare function getChannelConfig(channel: string): ChannelConfig;
/**
 * API 调用器类
 * 负责根据配置执行 API 调用
 */
export declare class ApiCaller {
    private request;
    private config;
    constructor(request: {
        get: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
        post: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
        put: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
        delete: <T = any>(url: string, options?: any) => Promise<T>;
    }, config: ChannelConfig);
    /**
     * 执行 API 调用
     */
    call<T = any>(apiName: keyof ChannelConfig, params?: any, additionalOptions?: any): Promise<T>;
}
/**
 * 创建 API 调用器
 */
export declare function createApiCaller(request: {
    get: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
    post: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
    put: <T = any>(url: string, data?: any, options?: any) => Promise<T>;
    delete: <T = any>(url: string, options?: any) => Promise<T>;
}, channel: string): ApiCaller;
