/**
 * 统一支付通知接口
 */
interface UnifiedPaymentNotification {
    /** 支付提供商 */
    provider: 'wechat' | 'alipay';
    /** 交易状态 */
    tradeStatus: 'SUCCESS' | 'FAIL' | 'PENDING';
    /** 商户订单号 */
    outTradeNo: string;
    /** 第三方交易号 */
    tradeNo: string;
    /** 交易金额（分） */
    totalAmount: number;
    /** 付款人ID */
    payerId?: string;
    /** 原始回调数据 */
    raw: any;
    /** 回调时间戳 */
    timestamp?: number;
}
/**
 * 支付通知载荷
 */
interface PaymentNotifyPayload {
    /** 支付提供商 */
    provider: 'wechat' | 'alipay';
    /** 原始回调数据 */
    raw: any;
    /** 请求头信息 */
    headers?: Record<string, string>;
}
/**
 * 支付提供商类型
 */
type PaymentProvider = 'wechat' | 'alipay';
/**
 * 微信支付方式
 */
type WechatPayMethod = 'native' | 'jsapi' | 'h5' | 'app';
/**
 * 支付宝支付方式
 */
type AlipayMethod = 'qrcode' | 'pc' | 'h5' | 'app';
/**
 * 支付方式映射
 */
type PaymentMethod = `wechat.${WechatPayMethod}` | `alipay.${AlipayMethod}`;
/**
 * 支付状态
 */
type PaymentStatus = 'SUCCESS' | 'FAIL' | 'PENDING' | 'REFUND';
/**
 * 支付配置基础接口
 */
interface BasePaymentConfig {
    /** 是否启用 */
    enabled: boolean;
    /** 是否为沙箱环境 */
    sandbox?: boolean;
}
/**
 * 错误码定义
 */
declare enum PaymentErrorCode {
    /** 验签失败 */
    VERIFY_FAILED = "VERIFY_FAILED",
    /** 解密失败 */
    DECRYPT_FAILED = "DECRYPT_FAILED",
    /** 配置错误 */
    CONFIG_ERROR = "CONFIG_ERROR",
    /** 网络错误 */
    NETWORK_ERROR = "NETWORK_ERROR",
    /** 未知提供商 */
    UNKNOWN_PROVIDER = "UNKNOWN_PROVIDER",
    /** 参数错误 */
    INVALID_PARAMS = "INVALID_PARAMS"
}
/**
 * 支付错误类
 */
declare class PaymentError extends Error {
    code: PaymentErrorCode;
    details?: any | undefined;
    constructor(code: PaymentErrorCode, message: string, details?: any | undefined);
}
/**
 * Hook 事件类型
 */
type HookEvent = 'onNotify' | 'onSuccess' | 'onFail' | 'onPending';
/**
 * Hook 处理函数
 */
type HookHandler = (notification: UnifiedPaymentNotification) => void | Promise<void>;
/**
 * Hook 配置
 */
interface HookConfig {
    [key: string]: HookHandler[];
}
/**
 * 支付订单创建请求
 */
interface CreateOrderRequest {
    /** 商户订单号 */
    outTradeNo: string;
    /** 订单总金额（分） */
    totalAmount: number;
    /** 商品描述 */
    subject: string;
    /** 商品详情 */
    body?: string;
    /** 订单过期时间（分钟，默认30分钟） */
    timeExpire?: number;
    /** 异步通知地址 */
    notifyUrl?: string;
    /** 同步返回地址 */
    returnUrl?: string;
    /** 透传参数 */
    passbackParams?: string;
    /** 用户 openid（JSAPI 支付必填） */
    openid?: string;
    /** 用户 IP 地址 */
    clientIp?: string;
    /**
     * 付款码（付款码支付必填）
     */
    authCode?: string;
    /**
     * 设备信息（付款码支付必填）
     */
    deviceInfo?: string;
}
/**
 * 微信支付订单创建请求
 */
interface WechatCreateOrderRequest extends CreateOrderRequest {
    /** 场景信息 */
    sceneInfo?: {
        /** 门店信息 */
        storeInfo?: {
            id: string;
            name?: string;
            areaCode?: string;
            address?: string;
        };
        /** H5 支付场景信息 */
        h5Info?: {
            type: 'Wap' | 'iOS' | 'Android';
            appName?: string;
            appUrl?: string;
            bundleId?: string;
            packageName?: string;
        };
    };
}
/**
 * 支付宝订单创建请求
 */
interface AlipayCreateOrderRequest extends CreateOrderRequest {
    /** 商品类型 */
    productCode?: string;
    /** 商品主类型 */
    goodsType?: string;
    /** 销售产品码 */
    salesProductCode?: string;
    /** 优惠信息 */
    discountableAmount?: number;
    /** 不可打折金额 */
    undiscountableAmount?: number;
    /** 商户门店编号 */
    storeId?: string;
}
/**
 * 支付订单创建响应
 */
interface CreateOrderResponse {
    /** 是否成功 */
    success: boolean;
    /** 错误信息 */
    error?: string;
    /** 支付订单号 */
    tradeNo?: string;
    /** 支付数据 */
    paymentData?: {
        /** 二维码链接（Native 支付） */
        qrCode?: string;
        /** 支付参数（JSAPI 支付） */
        payParams?: any;
        /** 支付 URL（H5 支付） */
        payUrl?: string;
        /** 支付表单（PC 支付） */
        payForm?: string;
    };
    /** 原始响应数据 */
    raw?: any;
}
/**
 * 订单查询请求
 */
interface QueryOrderRequest {
    /** 商户订单号 */
    outTradeNo?: string;
    /** 支付平台交易号 */
    tradeNo?: string;
}
/**
 * 订单查询响应
 */
interface QueryOrderResponse {
    /** 是否成功 */
    success: boolean;
    /** 错误信息 */
    error?: string;
    /** 订单信息 */
    orderInfo?: {
        /** 交易状态 */
        tradeStatus: 'SUCCESS' | 'FAIL' | 'PENDING' | 'CLOSED' | 'REFUND';
        /** 商户订单号 */
        outTradeNo: string;
        /** 支付平台交易号 */
        tradeNo: string;
        /** 交易金额（分） */
        totalAmount: number;
        /** 实际支付金额（分） */
        receiptAmount?: number;
        /** 付款方ID */
        payerId?: string;
        /** 交易创建时间 */
        createTime?: string;
        /** 交易支付时间 */
        payTime?: string;
    };
    /** 原始响应数据 */
    raw?: any;
}
/**
 * 退款请求
 */
interface RefundRequest {
    /** 商户订单号 */
    outTradeNo?: string;
    /** 支付平台交易号 */
    tradeNo?: string;
    /** 商户退款单号 */
    outRefundNo: string;
    /** 退款金额（分） */
    refundAmount: number;
    /** 退款原因 */
    refundReason?: string;
    /** 异步通知地址 */
    notifyUrl?: string;
}
/**
 * 退款响应
 */
interface RefundResponse {
    /** 是否成功 */
    success: boolean;
    /** 错误信息 */
    error?: string;
    /** 退款信息 */
    refundInfo?: {
        /** 退款单号 */
        refundId: string;
        /** 商户退款单号 */
        outRefundNo: string;
        /** 退款金额（分） */
        refundAmount: number;
        /** 退款状态 */
        refundStatus: 'SUCCESS' | 'FAIL' | 'PENDING';
        /** 退款时间 */
        refundTime?: string;
    };
    /** 原始响应数据 */
    raw?: any;
}
/**
 * 支付回调数据
 */
type PaymentData = Record<string, any>;
/**
 * 支付回调结果
 */
interface PaymentCallback {
    success: boolean;
    orderId: string;
    transactionId: string;
    amount: number;
    currency: string;
    payTime: Date;
    rawData: any;
}
/**
 * 扩展的错误码
 */
declare enum ExtendedPaymentErrorCode {
    /** 验签失败 */
    VERIFY_FAILED = "VERIFY_FAILED",
    /** 解密失败 */
    DECRYPT_FAILED = "DECRYPT_FAILED",
    /** 配置错误 */
    CONFIG_ERROR = "CONFIG_ERROR",
    /** 网络错误 */
    NETWORK_ERROR = "NETWORK_ERROR",
    /** 未知提供商 */
    UNKNOWN_PROVIDER = "UNKNOWN_PROVIDER",
    /** 参数错误 */
    INVALID_PARAMS = "INVALID_PARAMS",
    /** 无效参数 */
    INVALID_PARAMETER = "INVALID_PARAMETER",
    /** 回调错误 */
    CALLBACK_ERROR = "CALLBACK_ERROR",
    /** 创建订单失败 */
    CREATE_ORDER_FAILED = "CREATE_ORDER_FAILED",
    /** 查询订单失败 */
    QUERY_ORDER_FAILED = "QUERY_ORDER_FAILED",
    /** 退款失败 */
    REFUND_FAILED = "REFUND_FAILED"
}
/**
 * 扩展的支付方式枚举
 */
declare enum PaymentMethodEnum {
    WECHAT_NATIVE = "wechat.native",
    WECHAT_JSAPI = "wechat.jsapi",
    WECHAT_H5 = "wechat.h5",
    WECHAT_APP = "wechat.app",
    ALIPAY_QR = "alipay.qrcode",
    ALIPAY_PC = "alipay.pc",
    ALIPAY_H5 = "alipay.h5",
    ALIPAY_APP = "alipay.app"
}
/**
 * 新的创建订单请求接口
 */
interface NewCreateOrderRequest {
    orderId: string;
    amount: number;
    description: string;
    body?: string;
    attach?: string;
    timeExpire?: Date;
    clientIp?: string;
    openid?: string;
    quitUrl?: string;
}
/**
 * 新的创建订单响应接口
 */
interface NewCreateOrderResponse {
    orderId: string;
    paymentData: Record<string, any>;
    rawData: any;
}
/**
 * 新的查询订单请求接口
 */
interface NewQueryOrderRequest {
    orderId?: string;
    transactionId?: string;
}
/**
 * 新的查询订单响应接口
 */
interface NewQueryOrderResponse {
    orderId: string;
    transactionId: string;
    status: string;
    amount: number;
    currency: string;
    payTime?: Date;
    rawData: any;
}
/**
 * 新的退款请求接口
 */
interface NewRefundRequest {
    orderId?: string;
    transactionId?: string;
    refundId?: string;
    amount: number;
    reason?: string;
}
/**
 * 新的退款响应接口
 */
interface NewRefundResponse {
    refundId: string;
    orderId: string;
    transactionId: string;
    amount: number;
    status: string;
    refundTime?: Date;
    rawData: any;
}
/**
 * 微信支付创建订单请求
 */
interface WechatNewCreateOrderRequest extends NewCreateOrderRequest {
}
/**
 * 支付宝创建订单请求
 */
interface AlipayNewCreateOrderRequest extends NewCreateOrderRequest {
    subject: string;
}

/**
 * Provider 配置基础接口
 */
interface BaseProviderConfig {
    /** 是否启用 */
    enabled: boolean;
    /** 是否为沙箱环境 */
    sandbox?: boolean;
    /** 回调地址 */
    notifyUrl?: string;
}
/**
 * Provider 验签结果
 */
interface VerifyResult {
    /** 验签是否成功 */
    success: boolean;
    /** 错误信息（如果有） */
    error?: string;
    /** 额外信息 */
    details?: any;
}
/**
 * Provider 抽象基类
 * 所有支付提供商都必须实现这个抽象类
 */
declare abstract class BaseProvider<TConfig extends BaseProviderConfig = BaseProviderConfig> {
    protected config: TConfig;
    protected readonly providerName: string;
    constructor(config: TConfig, providerName: string);
    /**
     * 获取提供商名称
     */
    getProviderName(): string;
    /**
     * 获取配置
     */
    getConfig(): TConfig;
    /**
     * 更新配置
     * @param newConfig 新配置
     */
    updateConfig(newConfig: Partial<TConfig>): void;
    /**
     * 检查是否启用
     */
    isEnabled(): boolean;
    /**
     * 处理支付回调通知（主入口）
     * @param payload 回调载荷
     * @returns 统一格式的支付通知
     */
    handleNotify(payload: PaymentNotifyPayload): Promise<UnifiedPaymentNotification>;
    /**
     * 验证配置（抽象方法）
     * 子类必须实现这个方法来验证特定的配置
     */
    protected abstract validateConfig(): void;
    /**
     * 验证载荷格式（抽象方法）
     * @param payload 回调载荷
     */
    protected abstract validatePayload(payload: PaymentNotifyPayload): void;
    /**
     * 验证签名（抽象方法）
     * @param payload 回调载荷
     * @returns 验证结果
     */
    protected abstract verifySignature(payload: PaymentNotifyPayload): Promise<VerifyResult>;
    /**
     * 转换通知数据为统一格式（抽象方法）
     * @param payload 回调载荷
     * @returns 统一格式的支付通知
     */
    protected abstract transformNotification(payload: PaymentNotifyPayload): Promise<UnifiedPaymentNotification>;
    /**
     * 后处理逻辑（可选重写）
     * @param notification 转换后的通知
     * @param originalPayload 原始载荷
     */
    protected postProcess(_notification: UnifiedPaymentNotification, _originalPayload: PaymentNotifyPayload): Promise<void>;
    /**
     * 生成成功响应（抽象方法）
     * 不同提供商对成功响应的要求不同
     */
    abstract generateSuccessResponse(): string | object;
    /**
     * 生成失败响应（抽象方法）
     * 不同提供商对失败响应的要求不同
     */
    abstract generateFailureResponse(error?: string): string | object;
    /**
     * 获取支持的支付方式（抽象方法）
     * @returns 支持的支付方式列表
     */
    abstract getSupportedMethods(): string[];
    /**
     * 验证支付方式是否支持
     * @param method 支付方式
     * @returns 是否支持
     */
    isSupportedMethod(method: string): boolean;
    /**
     * 创建支付订单（抽象方法）
     * @param method 支付方式
     * @param request 订单创建请求
     * @returns 订单创建响应
     */
    abstract createOrder(method: string, request: CreateOrderRequest): Promise<CreateOrderResponse>;
    /**
     * 查询支付订单（抽象方法）
     * @param request 订单查询请求
     * @returns 订单查询响应
     */
    abstract queryOrder(request: QueryOrderRequest): Promise<QueryOrderResponse>;
    /**
     * 发起退款（抽象方法）
     * @param request 退款请求
     * @returns 退款响应
     */
    abstract refund(request: RefundRequest): Promise<RefundResponse>;
    /**
     * 获取 Provider 状态信息
     */
    getStatus(): {
        providerName: string;
        enabled: boolean;
        sandbox: boolean;
        supportedMethods: string[];
    };
}

/**
 * 支付宝回调参数
 */
interface AlipayNotifyParams {
    /** 通知时间 */
    notify_time: string;
    /** 通知类型 */
    notify_type: string;
    /** 通知校验ID */
    notify_id: string;
    /** 应用ID */
    app_id: string;
    /** 编码格式 */
    charset: string;
    /** 接口版本 */
    version: string;
    /** 签名类型 */
    sign_type: string;
    /** 签名 */
    sign: string;
    /** 交易状态 */
    trade_status: string;
    /** 商户订单号 */
    out_trade_no: string;
    /** 支付宝交易号 */
    trade_no: string;
    /** 交易金额 */
    total_amount: string;
    /** 实际支付金额 */
    receipt_amount?: string;
    /** 付款方ID */
    buyer_id: string;
    /** 付款方账号 */
    buyer_logon_id: string;
    /** 商品描述 */
    subject: string;
    /** 商品详情 */
    body?: string;
    /** 交易创建时间 */
    gmt_create: string;
    /** 交易付款时间 */
    gmt_payment: string;
    /** 交易结束时间 */
    gmt_close?: string;
    /** 资金明细 */
    fund_bill_list?: string;
    /** 透传参数 */
    passback_params?: string;
    /** 优惠券信息 */
    voucher_detail_list?: string;
    [key: string]: any;
}
/**
 * 支付宝 Provider 配置接口
 */
interface AlipayProviderConfig extends BaseProviderConfig {
    /** 应用ID */
    appId: string;
    /** 应用私钥 */
    privateKey: string;
    /** 支付宝公钥 */
    alipayPublicKey: string;
    /** 签名类型 */
    signType?: 'RSA2' | 'RSA';
    /** 网关地址 */
    gateway?: string;
    /** 同步回调地址 */
    returnUrl?: string;
}
/**
 * 支付宝 Provider 实现
 */
declare class AlipayProvider extends BaseProvider<AlipayProviderConfig> {
    private readonly supportedMethods;
    private alipayClient;
    constructor(config: AlipayProviderConfig);
    /**
     * 验证配置
     */
    protected validateConfig(): void;
    /**
     * 验证载荷格式
     */
    protected validatePayload(payload: PaymentNotifyPayload): void;
    /**
     * 验证签名
     */
    protected verifySignature(payload: PaymentNotifyPayload): Promise<VerifyResult>;
    /**
     * 构建待验签字符串
     */
    private buildSignString;
    /**
     * 转换通知数据为统一格式
     */
    protected transformNotification(payload: PaymentNotifyPayload): Promise<UnifiedPaymentNotification>;
    /**
     * 映射支付宝交易状态到统一状态
     */
    private mapTradeStatus;
    /**
     * 生成成功响应
     */
    generateSuccessResponse(): string;
    /**
     * 生成失败响应
     */
    generateFailureResponse(error?: string): string;
    /**
     * 获取支持的支付方式
     */
    getSupportedMethods(): string[];
    /**
     * 后处理逻辑
     */
    protected postProcess(notification: UnifiedPaymentNotification, _originalPayload: PaymentNotifyPayload): Promise<void>;
    /**
     * 解析支付宝表单数据
     */
    parseFormData(formData: any): AlipayNotifyParams;
    /**
     * 解析支付宝 URL 编码数据
     */
    parseUrlEncodedData(data: string): AlipayNotifyParams;
    /**
     * 创建响应对象
     * @param success 是否成功
     * @param error 错误信息
     * @returns 响应对象
     */
    createResponse(success: boolean, error?: string): {
        status: number;
        body: string;
        headers: Record<string, string>;
    };
    /**
     * 验证应用ID匹配
     */
    validateAppId(appId: string): boolean;
    /**
     * 获取签名类型
     */
    getSignType(): 'RSA' | 'RSA2';
    /**
     * 创建支付订单
     */
    createOrder(method: string, request: CreateOrderRequest): Promise<CreateOrderResponse>;
    /**
     * 创建二维码支付订单
     */
    private createQrcodePayment;
    /**
     * 创建H5支付订单
     */
    private createH5Payment;
    /**
     * 创建PC支付订单
     */
    private createPCPayment;
    /**
     * 创建APP支付订单
     */
    private createAppPayment;
    /**
     * 查询支付订单
     */
    queryOrder(request: QueryOrderRequest): Promise<QueryOrderResponse>;
    /**
     * 发起退款
     */
    refund(request: RefundRequest): Promise<RefundResponse>;
}

/**
 * 微信支付V2付款码支付响应
 */
interface WechatV2MicropayResponse {
    /** 返回状态码 */
    return_code: string;
    /** 返回信息 */
    return_msg: string;
    /** 公众账号ID */
    appid?: string;
    /** 商户号 */
    mch_id?: string;
    /** 设备号 */
    device_info?: string;
    /** 随机字符串 */
    nonce_str?: string;
    /** 签名 */
    sign?: string;
    /** 业务结果 */
    result_code?: string;
    /** 错误代码 */
    err_code?: string;
    /** 错误代码描述 */
    err_code_des?: string;
    /** 用户标识 */
    openid?: string;
    /** 是否关注公众账号 */
    is_subscribe?: string;
    /** 交易类型 */
    trade_type?: string;
    /** 付款银行 */
    bank_type?: string;
    /** 货币类型 */
    fee_type?: string;
    /** 订单金额 */
    total_fee?: number;
    /** 应结订单金额 */
    settlement_total_fee?: number;
    /** 代金券金额 */
    coupon_fee?: number;
    /** 现金支付货币类型 */
    cash_fee_type?: string;
    /** 现金支付金额 */
    cash_fee?: number;
    /** 微信支付订单号 */
    transaction_id?: string;
    /** 商户订单号 */
    out_trade_no?: string;
    /** 商家数据包 */
    attach?: string;
    /** 支付完成时间 */
    time_end?: string;
    /** 营销详情 */
    promotion_detail?: string;
}

/**
 * 微信支付 Provider 配置接口
 */
interface WechatProviderConfig extends BaseProviderConfig {
    /** 应用ID */
    appId: string;
    /** 商户号 */
    mchId: string;
    /** API v3 密钥 */
    apiV3Key: string;
    /** API v2 密钥 [可选，扫码枪支付必填] */
    apiV2Key?: string;
    /** 私钥内容或路径 */
    privateKey: string;
    /** 证书序列号 */
    serialNo: string;
    /** 微信支付平台证书（验签用） */
    platformCertificate?: string;
}
/**
 * 微信支付 Provider 实现
 */
declare class WechatProvider extends BaseProvider<WechatProviderConfig> {
    private readonly supportedMethods;
    private wechatClient;
    constructor(config: WechatProviderConfig);
    /**
     * 验证配置
     */
    protected validateConfig(): void;
    /**
     * 验证载荷格式
     */
    protected validatePayload(payload: PaymentNotifyPayload): void;
    /**
     * 验证签名
     */
    protected verifySignature(payload: PaymentNotifyPayload): Promise<VerifyResult>;
    /**
     * 转换通知数据为统一格式
     */
    protected transformNotification(payload: PaymentNotifyPayload): Promise<UnifiedPaymentNotification>;
    /**
     * 映射微信支付交易状态到统一状态
     */
    private mapTradeStatus;
    /**
     * 生成成功响应
     */
    generateSuccessResponse(): object;
    /**
     * 生成失败响应
     */
    generateFailureResponse(error?: string): object;
    /**
     * 获取支持的支付方式
     */
    getSupportedMethods(): string[];
    /**
     * 后处理逻辑
     */
    protected postProcess(notification: UnifiedPaymentNotification, _originalPayload: PaymentNotifyPayload): Promise<void>;
    /**
     * 创建响应对象
     */
    createResponse(success: boolean, _error?: string): {
        status: number;
        body: object;
        headers: Record<string, string>;
    };
    /**
     * 创建支付订单
     */
    createOrder(method: string, request: CreateOrderRequest): Promise<CreateOrderResponse>;
    /**
     * 创建 Native 支付订单
     */
    private createNativePayment;
    /**
     * 利用v2接口来支持付款码条码付款
     * 付款码支付必填参数：authCode、deviceInfo
     */
    createMicropay(request: CreateOrderRequest): Promise<WechatV2MicropayResponse>;
    /**
     * 创建 JSAPI 支付订单
     */
    private createJSAPIPayment;
    /**
     * 创建 H5 支付订单
     */
    private createH5Payment;
    /**
     * 构建基础订单参数
     */
    private buildBaseOrderParams;
    /**
     * 查询支付订单
     */
    queryOrder(request: QueryOrderRequest): Promise<QueryOrderResponse>;
    /**
     * 发起退款
     */
    refund(request: RefundRequest): Promise<RefundResponse>;
}

/**
 * Provider 构造函数类型
 */
type ProviderConstructor<TConfig extends BaseProviderConfig = BaseProviderConfig> = {
    new (config: TConfig): BaseProvider<TConfig>;
};
/**
 * Provider 注册信息
 */
interface ProviderRegistration<TConfig extends BaseProviderConfig = BaseProviderConfig> {
    /** Provider 构造函数 */
    constructor: ProviderConstructor<TConfig>;
    /** 默认配置 */
    defaultConfig?: Partial<TConfig>;
    /** 描述信息 */
    description?: string;
}
/**
 * Provider 工厂类
 * 负责管理和创建 Provider 实例
 */
declare class ProviderFactory {
    private static instance;
    private providers;
    private instances;
    /**
     * 获取单例实例
     */
    static getInstance(): ProviderFactory;
    /**
     * 注册 Provider
     * @param name Provider 名称
     * @param registration 注册信息
     */
    register<TConfig extends BaseProviderConfig>(name: string, registration: ProviderRegistration<TConfig>): void;
    /**
     * 注销 Provider
     * @param name Provider 名称
     */
    unregister(name: string): void;
    /**
     * 创建 Provider 实例
     * @param name Provider 名称
     * @param config 配置
     * @returns Provider 实例
     */
    create<TConfig extends BaseProviderConfig>(name: string, config: TConfig): BaseProvider<TConfig>;
    /**
     * 获取或创建 Provider 实例
     * @param name Provider 名称
     * @param config 配置（如果实例不存在）
     * @returns Provider 实例
     */
    getOrCreate<TConfig extends BaseProviderConfig>(name: string, config?: TConfig): BaseProvider<TConfig>;
    /**
     * 获取已创建的 Provider 实例
     * @param name Provider 名称
     * @returns Provider 实例或 undefined
     */
    getInstance(name: string): BaseProvider | undefined;
    /**
     * 检查 Provider 是否已注册
     * @param name Provider 名称
     * @returns 是否已注册
     */
    isRegistered(name: string): boolean;
    /**
     * 获取所有已注册的 Provider 名称
     * @returns Provider 名称列表
     */
    getRegisteredProviders(): string[];
    /**
     * 获取所有已创建的实例
     * @returns 实例映射
     */
    getAllInstances(): Map<string, BaseProvider>;
    /**
     * 批量创建 Provider 实例
     * @param configs Provider 配置映射
     * @returns 创建的实例映射
     */
    createBatch(configs: Record<string, BaseProviderConfig>): Map<string, BaseProvider>;
    /**
     * 清除所有实例
     */
    clearInstances(): void;
    /**
     * 清除所有注册和实例
     */
    reset(): void;
    /**
     * 获取 Provider 注册信息
     * @param name Provider 名称
     * @returns 注册信息
     */
    getRegistration(name: string): ProviderRegistration<any> | undefined;
    /**
     * 获取所有注册信息
     * @returns 注册信息映射
     */
    getAllRegistrations(): Map<string, ProviderRegistration<any>>;
}
/**
 * 默认工厂实例
 */
declare const defaultProviderFactory: ProviderFactory;

/**
 * 注册内置 Provider
 */
declare function registerBuiltInProviders(): void;
/**
 * 获取所有注册的 Provider 信息
 */
declare function getRegisteredProviderInfo(): Array<{
    name: string;
    description?: string;
    supportedMethods: string[];
    defaultConfig: any;
}>;

/**
 * 微信支付配置
 */
interface WechatPayConfig extends BasePaymentConfig {
    /** 应用ID */
    appId: string;
    /** 商户号 */
    mchId: string;
    /** API v3 密钥 */
    apiV3Key: string;
    /** 私钥内容或路径 */
    privateKey: string;
    /** 证书序列号 */
    serialNo: string;
    /** 微信支付平台证书（验签用） */
    platformCertificate?: string;
    /** 回调地址 */
    notifyUrl?: string;
}
/**
 * 支付宝配置
 */
interface AlipayConfig extends BasePaymentConfig {
    /** 应用ID */
    appId: string;
    /** 应用私钥 */
    privateKey: string;
    /** 支付宝公钥 */
    alipayPublicKey: string;
    /** 签名类型 */
    signType?: 'RSA2' | 'RSA';
    /** 网关地址 */
    gateway?: string;
    /** 回调地址 */
    notifyUrl?: string;
    /** 同步回调地址 */
    returnUrl?: string;
}
/**
 * 支付配置
 */
interface PaymentConfig {
    /** 微信支付配置 */
    wechat?: WechatPayConfig;
    /** 支付宝配置 */
    alipay?: AlipayConfig;
    /** Hook 配置 */
    hooks?: HookConfig;
    /** 全局配置 */
    global?: {
        /** 超时时间 */
        timeout?: number;
        /** 重试次数 */
        retries?: number;
        /** 日志级别 */
        logLevel?: 'debug' | 'info' | 'warn' | 'error';
        /** 是否启用日志 */
        enableLog?: boolean;
    };
}
/**
 * 环境变量配置映射
 */
interface EnvConfig {
    WECHAT_APP_ID?: string;
    WECHAT_MCH_ID?: string;
    WECHAT_API_V3_KEY?: string;
    WECHAT_PRIVATE_KEY?: string;
    WECHAT_SERIAL_NO?: string;
    WECHAT_PLATFORM_CERT?: string;
    WECHAT_NOTIFY_URL?: string;
    ALIPAY_APP_ID?: string;
    ALIPAY_PRIVATE_KEY?: string;
    ALIPAY_PUBLIC_KEY?: string;
    ALIPAY_SIGN_TYPE?: string;
    ALIPAY_GATEWAY?: string;
    ALIPAY_NOTIFY_URL?: string;
    ALIPAY_RETURN_URL?: string;
    PAYMENT_TIMEOUT?: string;
    PAYMENT_RETRIES?: string;
    PAYMENT_LOG_LEVEL?: string;
    PAYMENT_ENABLE_LOG?: string;
}

/**
 * Hook 管理器
 */
declare class HookManager {
    private hooks;
    /**
     * 注册 Hook
     * @param event 事件名称
     * @param handler 处理函数
     */
    on(event: HookEvent, handler: HookHandler): void;
    /**
     * 注销 Hook
     * @param event 事件名称
     * @param handler 处理函数
     */
    off(event: HookEvent, handler: HookHandler): void;
    /**
     * 触发 Hook
     * @param event 事件名称
     * @param notification 支付通知
     */
    emit(event: HookEvent, notification: UnifiedPaymentNotification): Promise<void>;
    /**
     * 清除所有 Hook
     */
    clear(): void;
    /**
     * 获取指定事件的 Hook 数量
     * @param event 事件名称
     * @returns Hook 数量
     */
    getHookCount(event: HookEvent): number;
    /**
     * 获取所有已注册的事件
     * @returns 事件列表
     */
    getRegisteredEvents(): HookEvent[];
}
/**
 * 根据支付状态触发相应的 Hook
 * @param notification 支付通知
 * @param hookManager Hook 管理器
 */
declare function callStatusHooks(notification: UnifiedPaymentNotification, hookManager: HookManager): Promise<void>;

/**
 * 新版支付管理器 - 使用面向对象的 Provider 架构
 */
declare class PaymentManagerV2 {
    private providers;
    private hookManager;
    private config;
    /**
     * 构造函数
     * @param userConfig 用户配置
     */
    constructor(userConfig?: Partial<PaymentConfig>);
    /**
     * 合并配置
     */
    private mergeConfig;
    /**
     * 初始化 Provider
     */
    private initializeProviders;
    /**
     * 初始化 Hook
     */
    private initializeHooks;
    /**
     * 处理支付回调通知
     * @param method 支付方式
     * @param payload 回调载荷
     * @returns 统一格式的支付通知
     */
    handleNotify(method: PaymentMethod, payload: PaymentNotifyPayload): Promise<UnifiedPaymentNotification>;
    /**
     * 解析 Provider 名称
     */
    private parseProviderName;
    /**
     * 获取 Provider 实例
     */
    private getProvider;
    /**
     * 添加 Provider
     * @param name Provider 名称
     * @param provider Provider 实例
     */
    addProvider(name: string, provider: BaseProvider): void;
    /**
     * 移除 Provider
     * @param name Provider 名称
     */
    removeProvider(name: string): void;
    /**
     * 获取 Provider 实例
     * @param name Provider 名称
     * @returns Provider 实例或 undefined
     */
    getProviderInstance(providerName: string): BaseProvider | undefined;
    /**
     * 注册 Hook
     */
    onNotify(handler: (notification: UnifiedPaymentNotification) => void | Promise<void>): void;
    onSuccess(handler: (notification: UnifiedPaymentNotification) => void | Promise<void>): void;
    onFail(handler: (notification: UnifiedPaymentNotification) => void | Promise<void>): void;
    onPending(handler: (notification: UnifiedPaymentNotification) => void | Promise<void>): void;
    /**
     * 获取配置
     */
    getConfig(): PaymentConfig;
    /**
     * 更新配置
     * @param newConfig 新配置
     */
    updateConfig(newConfig: Partial<PaymentConfig>): void;
    /**
     * 检查 Provider 是否启用
     */
    isProviderEnabled(provider: 'wechat' | 'alipay'): boolean;
    /**
     * 获取已启用的 Provider 列表
     */
    getEnabledProviders(): string[];
    /**
     * 获取所有 Provider 状态
     */
    getProvidersStatus(): Array<{
        name: string;
        enabled: boolean;
        sandbox: boolean;
        supportedMethods: string[];
    }>;
    /**
     * 获取支持的支付方式
     */
    getSupportedMethods(): string[];
    /**
     * 验证支付方式是否支持
     */
    isSupportedMethod(method: PaymentMethod): boolean;
    /**
     * 获取 Hook 管理器
     */
    getHookManager(): HookManager;
    /**
     * 销毁管理器
     */
    destroy(): void;
    /**
     * 创建支付订单
     * @param method 支付方式
     * @param request 订单创建请求
     * @returns 订单创建响应
     */
    createOrder(method: PaymentMethod, request: CreateOrderRequest): Promise<CreateOrderResponse>;
    /**
     * 查询支付订单
     * @param providerName 支付提供商名称
     * @param request 订单查询请求
     * @returns 订单查询响应
     */
    queryOrder(providerName: string, request: QueryOrderRequest): Promise<QueryOrderResponse>;
    /**
     * 发起退款
     * @param providerName 支付提供商名称
     * @param request 退款请求
     * @returns 退款响应
     */
    refund(providerName: string, request: RefundRequest): Promise<RefundResponse>;
}
/**
 * 创建支付管理器实例
 */
declare function createPaymentManagerV2(config?: Partial<PaymentConfig>): PaymentManagerV2;

/**
 * 从环境变量加载配置
 * @returns 配置对象
 */
declare function loadConfigFromEnv(): Partial<PaymentConfig>;
/**
 * 验证微信支付配置
 * @param config 微信支付配置
 */
declare function validateWechatConfig(config: WechatPayConfig): void;
/**
 * 验证支付宝配置
 * @param config 支付宝配置
 */
declare function validateAlipayConfig(config: AlipayConfig): void;
/**
 * 合并配置
 * @param userConfig 用户配置
 * @param envConfig 环境变量配置
 * @returns 合并后的配置
 */
declare function mergeConfig(userConfig?: Partial<PaymentConfig>, envConfig?: Partial<PaymentConfig>): PaymentConfig;
/**
 * 获取完整配置
 * @param userConfig 用户配置
 * @returns 完整配置
 */
declare function getConfig(userConfig?: Partial<PaymentConfig>): PaymentConfig;

/**
 * AES-GCM 解密函数（微信支付 v3）
 * @param ciphertext 密文（base64）
 * @param nonce 随机数
 * @param associatedData 附加数据
 * @param apiV3Key API v3 密钥
 * @returns 解密后的明文
 */
declare function aesGcmDecrypt(ciphertext: string, nonce: string, associatedData: string, apiV3Key: string): string;
/**
 * RSA2 验签函数（支付宝）
 * @param data 待验证的数据
 * @param signature 签名
 * @param publicKey 公钥
 * @returns 验证结果
 */
declare function verifyWithRSA2(data: string, signature: string, publicKey: string): boolean;
/**
 * RSA 验签函数（支付宝 RSA）
 * @param data 待验证的数据
 * @param signature 签名
 * @param publicKey 公钥
 * @returns 验证结果
 */
declare function verifyWithRSA(data: string, signature: string, publicKey: string): boolean;
/**
 * 生成 RSA 签名（用于支付宝请求签名）
 * @param data 待签名数据
 * @param privateKey 私钥
 * @param algorithm 签名算法
 * @returns 签名结果
 */
declare function signWithRSA(data: string, privateKey: string, algorithm?: 'RSA-SHA1' | 'RSA-SHA256'): string;
/**
 * 微信支付签名验证
 * @param timestamp 时间戳
 * @param nonce 随机字符串
 * @param body 请求体
 * @param signature 签名
 * @param publicKey 微信支付平台公钥
 * @returns 验证结果
 */
declare function verifyWechatSignature(timestamp: string, nonce: string, body: string, signature: string, publicKey: string): boolean;
/**
 * 生成随机字符串
 */
declare function generateNonce(length?: number): string;
/**
 * 生成时间戳（秒）
 */
declare function generateTimestamp(): number;
/**
 * 生成随机订单号
 */
declare function generateOrderNo(prefix?: string): string;
/**
 * 格式化金额（分转元）
 */
declare function formatAmount(amount: number): string;
/**
 * 解析金额（元转分）
 */
declare function parseAmount(amount: string | number): number;
/**
 * 验证订单号格式
 */
declare function validateOrderNo(orderNo: string): boolean;
/**
 * 生成UUID
 */
declare function generateUUID(): string;
/**
 * 安全比较字符串（防止时序攻击）
 */
declare function safeCompare(a: string, b: string): boolean;
/**
 * URL安全的Base64编码
 */
declare function base64UrlEncode(str: string): string;
/**
 * URL安全的Base64解码
 */
declare function base64UrlDecode(str: string): string;

/**
 * HTTP 请求配置
 */
interface HttpRequestConfig {
    url: string;
    method: 'GET' | 'POST' | 'PUT' | 'DELETE';
    headers?: Record<string, string>;
    data?: any;
    timeout?: number;
}
/**
 * HTTP 响应
 */
interface HttpResponse<T = any> {
    status: number;
    statusText: string;
    headers: Record<string, string>;
    data: T;
}
/**
 * HTTP 客户端类
 */
declare class HttpClient {
    private timeout;
    constructor(timeout?: number);
    /**
     * 发送 HTTP 请求
     */
    request<T = any>(config: HttpRequestConfig): Promise<HttpResponse<T>>;
    /**
     * GET 请求
     */
    get<T = any>(url: string, headers?: Record<string, string>): Promise<HttpResponse<T>>;
    /**
     * POST 请求
     */
    post<T = any>(url: string, data?: any, headers?: Record<string, string>): Promise<HttpResponse<T>>;
}

/**
 * 微信支付V3 API基础URL
 */
declare const WECHAT_PAY_API_BASE = "https://api.mch.weixin.qq.com";
/**
 * 微信支付V3签名工具
 */
declare class WechatPayV3Signer {
    private privateKey;
    private mchId;
    private serialNo;
    constructor(privateKey: string, mchId: string, serialNo: string);
    /**
     * 生成微信支付V3签名
     */
    generateSignature(method: string, url: string, timestamp: string, nonce: string, body: string): string;
    /**
     * 生成Authorization头
     */
    generateAuthorizationHeader(method: string, url: string, body?: string): string;
}
/**
 * 微信支付V3 API客户端
 */
declare class WechatPayV3Client {
    private httpClient;
    private signer;
    private sandbox;
    constructor(privateKey: string, mchId: string, serialNo: string, sandbox?: boolean);
    /**
     * 获取API基础URL
     */
    private getBaseUrl;
    /**
     * 发送微信支付API请求
     */
    request<T = any>(method: string, path: string, data?: any): Promise<T>;
    /**
     * Native支付下单
     */
    createNativeOrder(params: WechatNativeOrderParams): Promise<WechatNativeOrderResponse>;
    /**
     * JSAPI支付下单
     */
    createJSAPIOrder(params: WechatJSAPIOrderParams): Promise<WechatJSAPIOrderResponse>;
    /**
     * H5支付下单
     */
    createH5Order(params: WechatH5OrderParams): Promise<WechatH5OrderResponse>;
    /**
     * 查询订单（通过商户订单号）
     */
    queryOrderByOutTradeNo(outTradeNo: string, mchId: string): Promise<WechatOrderQueryResponse>;
    /**
     * 查询订单（通过微信支付订单号）
     */
    queryOrderByTransactionId(transactionId: string, mchId: string): Promise<WechatOrderQueryResponse>;
    /**
     * 申请退款
     */
    createRefund(params: WechatRefundParams): Promise<WechatRefundResponse>;
    /**
     * 查询退款
     */
    queryRefund(outRefundNo: string): Promise<WechatRefundQueryResponse>;
}
/**
 * 微信支付Native下单参数
 */
interface WechatNativeOrderParams {
    appid: string;
    mchid: string;
    description: string;
    out_trade_no: string;
    time_expire?: string;
    attach?: string;
    notify_url: string;
    goods_tag?: string;
    support_fapiao?: boolean;
    amount: {
        total: number;
        currency?: string;
    };
    detail?: {
        cost_price?: number;
        invoice_id?: string;
        goods_detail?: Array<{
            merchant_goods_id: string;
            wechatpay_goods_id?: string;
            goods_name?: string;
            quantity: number;
            unit_price: number;
        }>;
    };
    scene_info?: {
        payer_client_ip: string;
        device_id?: string;
        store_info?: {
            id: string;
            name?: string;
            area_code?: string;
            address?: string;
        };
    };
    settle_info?: {
        profit_sharing?: boolean;
    };
}
/**
 * 微信支付Native下单响应
 */
interface WechatNativeOrderResponse {
    code_url: string;
}
/**
 * 微信支付JSAPI下单参数
 */
interface WechatJSAPIOrderParams extends Omit<WechatNativeOrderParams, 'scene_info'> {
    payer: {
        openid: string;
    };
    scene_info?: {
        payer_client_ip: string;
        device_id?: string;
        store_info?: {
            id: string;
            name?: string;
            area_code?: string;
            address?: string;
        };
    };
}
/**
 * 微信支付JSAPI下单响应
 */
interface WechatJSAPIOrderResponse {
    prepay_id: string;
}
/**
 * 微信支付H5下单参数
 */
interface WechatH5OrderParams extends Omit<WechatNativeOrderParams, 'scene_info'> {
    scene_info: {
        payer_client_ip: string;
        device_id?: string;
        h5_info: {
            type: 'Wap' | 'iOS' | 'Android';
            app_name?: string;
            app_url?: string;
            bundle_id?: string;
            package_name?: string;
        };
    };
}
/**
 * 微信支付H5下单响应
 */
interface WechatH5OrderResponse {
    h5_url: string;
}
/**
 * 微信支付订单查询响应
 */
interface WechatOrderQueryResponse {
    appid: string;
    mchid: string;
    out_trade_no: string;
    transaction_id: string;
    trade_type: string;
    trade_state: string;
    trade_state_desc: string;
    bank_type: string;
    attach?: string;
    success_time?: string;
    payer: {
        openid: string;
    };
    amount: {
        total: number;
        payer_total: number;
        currency: string;
        payer_currency: string;
    };
}
/**
 * 微信支付退款参数
 */
interface WechatRefundParams {
    transaction_id?: string;
    out_trade_no?: string;
    out_refund_no: string;
    reason?: string;
    notify_url?: string;
    funds_account?: string;
    amount: {
        refund: number;
        total: number;
        currency?: string;
    };
    goods_detail?: Array<{
        merchant_goods_id: string;
        wechatpay_goods_id?: string;
        goods_name?: string;
        unit_price: number;
        refund_amount: number;
        refund_quantity: number;
    }>;
}
/**
 * 微信支付退款响应
 */
interface WechatRefundResponse {
    refund_id: string;
    out_refund_no: string;
    transaction_id: string;
    out_trade_no: string;
    channel: string;
    user_received_account: string;
    success_time?: string;
    create_time: string;
    status: string;
    funds_account?: string;
    amount: {
        total: number;
        refund: number;
        payer_total: number;
        payer_refund: number;
        settlement_refund: number;
        settlement_total: number;
        discount_refund: number;
        currency: string;
    };
}
/**
 * 微信支付退款查询响应
 */
interface WechatRefundQueryResponse extends WechatRefundResponse {
    promotion_detail?: Array<{
        promotion_id: string;
        scope: string;
        type: string;
        amount: number;
        refund_amount: number;
        goods_detail?: Array<{
            goods_id: string;
            quantity: number;
            unit_price: number;
            discount_amount: number;
            goods_remark?: string;
        }>;
    }>;
}
/**
 * 生成JSAPI支付参数
 */
declare function generateJSAPIPayParams(appId: string, prepayId: string, privateKey: string): {
    appId: string;
    timeStamp: string;
    nonceStr: string;
    package: string;
    signType: string;
    paySign: string;
};

/**
 * 支付宝API基础URL
 */
declare const ALIPAY_API_BASE = "https://openapi.alipay.com/gateway.do";
declare const ALIPAY_SANDBOX_API_BASE = "https://openapi.alipaydev.com/gateway.do";
/**
 * 支付宝签名工具
 */
declare class AlipaySignature {
    private privateKey;
    private signType;
    constructor(privateKey: string, signType?: 'RSA' | 'RSA2');
    /**
     * 生成支付宝签名
     */
    generateSignature(params: Record<string, any>): string;
    /**
     * 验证支付宝签名
     */
    verifySignature(params: Record<string, any>, signature: string, publicKey: string): boolean;
}
/**
 * 支付宝API客户端
 */
declare class AlipayClient {
    private httpClient;
    private signature;
    private appId;
    private privateKey;
    private alipayPublicKey;
    private sandbox;
    private signType;
    constructor(appId: string, privateKey: string, alipayPublicKey: string, signType?: 'RSA' | 'RSA2', sandbox?: boolean);
    /**
     * 获取API基础URL
     */
    private getBaseUrl;
    /**
     * 构建公共参数
     */
    private buildCommonParams;
    /**
     * 发送支付宝API请求
     */
    request<T extends {
        code: string;
        msg: string;
        sub_msg?: string;
    }>(method: string, bizContent?: any, extraParams?: Record<string, any>): Promise<T>;
    /**
     * 统一收单交易创建接口（扫码支付）
     */
    tradeCreate(params: AlipayTradeCreateParams): Promise<AlipayTradeCreateResponse>;
    /**
     * 手机网站支付接口2.0（H5支付）
     */
    tradeWapPay(params: AlipayTradeWapPayParams): Promise<string>;
    /**
     * 电脑网站支付（PC支付）
     */
    tradePagePay(params: AlipayTradePagePayParams): Promise<string>;
    /**
     * 统一收单线下交易查询
     */
    tradeQuery(params: AlipayTradeQueryParams): Promise<AlipayTradeQueryResponse>;
    /**
     * 统一收单交易关闭接口
     */
    tradeClose(params: AlipayTradeCloseParams): Promise<AlipayTradeCloseResponse>;
    /**
     * 统一收单交易退款接口
     */
    tradeRefund(params: AlipayTradeRefundParams): Promise<AlipayTradeRefundResponse>;
    /**
     * 统一收单交易退款查询
     */
    tradeRefundQuery(params: AlipayTradeRefundQueryParams): Promise<AlipayTradeRefundQueryResponse>;
}
/**
 * 支付宝API响应基础结构
 */
interface AlipayResponse<T = any> {
    [key: string]: T;
}
/**
 * 支付宝统一收单交易创建参数
 */
interface AlipayTradeCreateParams {
    out_trade_no: string;
    total_amount: string;
    subject: string;
    body?: string;
    buyer_id?: string;
    seller_id?: string;
    goods_detail?: Array<{
        goods_id: string;
        goods_name: string;
        quantity: number;
        price: string;
        goods_category?: string;
        categories_tree?: string;
        body?: string;
        show_url?: string;
    }>;
    product_code?: string;
    operator_id?: string;
    store_id?: string;
    disable_pay_channels?: string;
    enable_pay_channels?: string;
    terminal_id?: string;
    extend_params?: {
        sys_service_provider_id?: string;
        hb_fq_num?: string;
        hb_fq_seller_percent?: string;
        industry_reflux_info?: string;
        card_type?: string;
    };
    timeout_express?: string;
    settle_info?: {
        settle_detail_infos: Array<{
            trans_in_type: string;
            trans_in: string;
            summary_dimension?: string;
            settle_entity_id?: string;
            settle_entity_type?: string;
            amount: string;
        }>;
    };
    logistics_detail?: {
        logistics_type?: string;
    };
    business_params?: {
        campus_card?: string;
        card_type?: string;
        actual_order_time?: string;
    };
    receiver_address_info?: {
        name?: string;
        address?: string;
        mobile?: string;
        zip?: string;
        division_code?: string;
    };
}
/**
 * 支付宝统一收单交易创建响应
 */
interface AlipayTradeCreateResponse {
    code: string;
    msg: string;
    sub_code?: string;
    sub_msg?: string;
    trade_no: string;
    out_trade_no: string;
    qr_code?: string;
}
/**
 * 支付宝手机网站支付参数
 */
interface AlipayTradeWapPayParams {
    out_trade_no: string;
    total_amount: string;
    subject: string;
    body?: string;
    product_code?: string;
    time_expire?: string;
    goods_type?: string;
    passback_params?: string;
    promo_params?: string;
    extend_params?: {
        sys_service_provider_id?: string;
        hb_fq_num?: string;
        hb_fq_seller_percent?: string;
        industry_reflux_info?: string;
        card_type?: string;
    };
    merchant_order_no?: string;
    enable_pay_channels?: string;
    disable_pay_channels?: string;
    store_id?: string;
    quit_url?: string;
    ext_user_info?: {
        name?: string;
        mobile?: string;
        cert_type?: string;
        cert_no?: string;
        min_age?: string;
        fix_buyer?: string;
        need_check_info?: string;
    };
}
/**
 * 支付宝电脑网站支付参数
 */
interface AlipayTradePagePayParams extends AlipayTradeWapPayParams {
    return_url?: string;
    notify_url?: string;
}
/**
 * 支付宝交易查询参数
 */
interface AlipayTradeQueryParams {
    out_trade_no?: string;
    trade_no?: string;
    org_pid?: string;
    query_options?: string[];
}
/**
 * 支付宝交易查询响应
 */
interface AlipayTradeQueryResponse {
    code: string;
    msg: string;
    sub_code?: string;
    sub_msg?: string;
    trade_no: string;
    out_trade_no: string;
    buyer_logon_id: string;
    trade_status: string;
    total_amount: string;
    trans_currency?: string;
    settle_currency?: string;
    settle_amount?: string;
    pay_currency?: string;
    pay_amount?: string;
    settle_trans_rate?: string;
    trans_pay_rate?: string;
    buyer_pay_amount?: string;
    point_amount?: string;
    invoice_amount?: string;
    send_pay_date?: string;
    receipt_amount?: string;
    store_id?: string;
    terminal_id?: string;
    fund_bill_list?: Array<{
        fund_channel: string;
        bank_code?: string;
        amount: string;
        real_amount?: string;
    }>;
    store_name?: string;
    buyer_user_id?: string;
    buyer_user_type?: string;
    mdiscount_amount?: string;
    discount_amount?: string;
    buyer_user_name?: string;
    subject?: string;
    body?: string;
    alipay_sub_merchant_id?: string;
    ext_infos?: string;
}
/**
 * 支付宝交易关闭参数
 */
interface AlipayTradeCloseParams {
    trade_no?: string;
    out_trade_no?: string;
    operator_id?: string;
}
/**
 * 支付宝交易关闭响应
 */
interface AlipayTradeCloseResponse {
    code: string;
    msg: string;
    sub_code?: string;
    sub_msg?: string;
    trade_no: string;
    out_trade_no: string;
}
/**
 * 支付宝退款参数
 */
interface AlipayTradeRefundParams {
    trade_no?: string;
    out_trade_no?: string;
    refund_amount: string;
    refund_currency?: string;
    refund_reason?: string;
    out_request_no?: string;
    operator_id?: string;
    store_id?: string;
    terminal_id?: string;
    goods_detail?: Array<{
        goods_id: string;
        alipay_goods_id?: string;
        goods_name: string;
        quantity: number;
        price: string;
        goods_category?: string;
        categories_tree?: string;
        body?: string;
        show_url?: string;
    }>;
    refund_royalty_parameters?: Array<{
        royalty_type?: string;
        trans_out?: string;
        trans_out_type?: string;
        trans_in_type?: string;
        trans_in?: string;
        amount?: string;
        amount_percentage?: string;
        desc?: string;
    }>;
    org_pid?: string;
}
/**
 * 支付宝退款响应
 */
interface AlipayTradeRefundResponse {
    code: string;
    msg: string;
    sub_code?: string;
    sub_msg?: string;
    trade_no: string;
    out_trade_no: string;
    buyer_logon_id: string;
    fund_change: string;
    refund_fee: string;
    refund_currency?: string;
    gmt_refund_pay: string;
    refund_detail_item_list?: Array<{
        fund_channel: string;
        bank_code?: string;
        amount: string;
        real_amount?: string;
        fund_type?: string;
    }>;
    store_name?: string;
    buyer_user_id: string;
    refund_preset_paytool_list?: Array<{
        amount: string;
        assert_type_code: string;
    }>;
    refund_settlement_id?: string;
    present_refund_buyer_amount?: string;
    present_refund_discount_amount?: string;
    present_refund_mdiscount_amount?: string;
}
/**
 * 支付宝退款查询参数
 */
interface AlipayTradeRefundQueryParams {
    trade_no?: string;
    out_trade_no?: string;
    out_request_no: string;
    org_pid?: string;
    query_options?: string[];
}
/**
 * 支付宝退款查询响应
 */
interface AlipayTradeRefundQueryResponse {
    code: string;
    msg: string;
    sub_code?: string;
    sub_msg?: string;
    trade_no: string;
    out_trade_no: string;
    out_request_no: string;
    refund_reason?: string;
    total_amount: string;
    refund_amount: string;
    refund_royaltys?: Array<{
        refund_amount?: string;
        royalty_type?: string;
        result_code?: string;
        trans_out?: string;
        trans_out_email?: string;
        trans_in?: string;
        trans_in_email?: string;
    }>;
    refund_status: string;
    refund_royalty_result?: Array<{
        trans_out?: string;
        trans_out_email?: string;
        trans_in?: string;
        trans_in_email?: string;
        amount?: string;
        result_code?: string;
    }>;
    refund_detail_item_list?: Array<{
        fund_channel: string;
        bank_code?: string;
        amount: string;
        real_amount?: string;
        fund_type?: string;
    }>;
    send_back_fee?: string;
    refund_settlement_id?: string;
    present_refund_buyer_amount?: string;
    present_refund_discount_amount?: string;
    present_refund_mdiscount_amount?: string;
}

/**
 * Next.js App Router 响应类型
 */
type NextResponse = Response;
/**
 * Next.js App Router 请求类型
 */
interface NextRequest extends Request {
    formData(): Promise<FormData>;
    json(): Promise<any>;
}
/**
 * 响应构建器接口
 */
interface ResponseBuilder {
    buildSuccessResponse(): {
        status: number;
        body: any;
        headers: Record<string, string>;
    };
    buildFailureResponse(error?: string): {
        status: number;
        body: any;
        headers: Record<string, string>;
    };
}
/**
 * V2 回调处理器配置
 */
interface NotifyHandlerV2Config {
    /** 支付管理器 V2 */
    paymentManager: PaymentManagerV2;
    /** 支付方式 */
    method: PaymentMethod;
    /** 成功回调 */
    onSuccess?: (notification: UnifiedPaymentNotification) => void | Promise<void>;
    /** 失败回调 */
    onFail?: (notification: UnifiedPaymentNotification) => void | Promise<void>;
    /** 待处理回调 */
    onPending?: (notification: UnifiedPaymentNotification) => void | Promise<void>;
    /** 错误回调 */
    onError?: (error: PaymentError) => void | Promise<void>;
    /** 自定义响应构建器 */
    responseBuilder?: ResponseBuilder;
    /** 启用调试日志 */
    enableDebugLog?: boolean;
}
/**
 * 创建 V2 通用回调处理器
 * @param config 配置
 * @returns 路由处理函数
 */
declare function createNotifyHandlerV2(config: NotifyHandlerV2Config): (request: NextRequest) => Promise<NextResponse>;
/**
 * 创建快捷微信支付处理器
 */
declare function createWechatNotifyHandlerV2(paymentManager: PaymentManagerV2, method?: PaymentMethod, options?: Omit<NotifyHandlerV2Config, 'paymentManager' | 'method'>): (request: NextRequest) => Promise<NextResponse>;
/**
 * 创建快捷支付宝处理器
 */
declare function createAlipayNotifyHandlerV2(paymentManager: PaymentManagerV2, method?: PaymentMethod, options?: Omit<NotifyHandlerV2Config, 'paymentManager' | 'method'>): (request: NextRequest) => Promise<NextResponse>;

declare const version = "2.0.0";

/**
 * 创建微信支付Provider
 */
declare function createWechatProvider(config: WechatProviderConfig): WechatProvider;
/**
 * 创建支付宝Provider
 */
declare function createAlipayProvider(config: AlipayProviderConfig): AlipayProvider;

export { ALIPAY_API_BASE, ALIPAY_SANDBOX_API_BASE, AlipayClient, type AlipayCreateOrderRequest, type AlipayMethod, type AlipayNewCreateOrderRequest, AlipayProvider, type AlipayProviderConfig, type AlipayResponse, AlipaySignature, type AlipayTradeCloseParams, type AlipayTradeCloseResponse, type AlipayTradeCreateParams, type AlipayTradeCreateResponse, type AlipayTradePagePayParams, type AlipayTradeQueryParams, type AlipayTradeQueryResponse, type AlipayTradeRefundParams, type AlipayTradeRefundQueryParams, type AlipayTradeRefundQueryResponse, type AlipayTradeRefundResponse, type AlipayTradeWapPayParams, type BasePaymentConfig, BaseProvider, type BaseProviderConfig, type CreateOrderRequest, type CreateOrderResponse, type EnvConfig, ExtendedPaymentErrorCode, type HookConfig, type HookEvent, type HookHandler, HookManager, HttpClient, type HttpRequestConfig, type HttpResponse, type NewCreateOrderRequest, type NewCreateOrderResponse, type NewQueryOrderRequest, type NewQueryOrderResponse, type NewRefundRequest, type NewRefundResponse, type NotifyHandlerV2Config, type PaymentCallback, type PaymentConfig, type PaymentData, PaymentError, PaymentErrorCode, PaymentManagerV2, type PaymentMethod, PaymentMethodEnum, type PaymentNotifyPayload, type PaymentProvider, type PaymentStatus, type ProviderConstructor, ProviderFactory, type ProviderRegistration, type QueryOrderRequest, type QueryOrderResponse, type RefundRequest, type RefundResponse, type UnifiedPaymentNotification, type VerifyResult, WECHAT_PAY_API_BASE, type WechatCreateOrderRequest, type WechatH5OrderParams, type WechatH5OrderResponse, type WechatJSAPIOrderParams, type WechatJSAPIOrderResponse, type WechatNativeOrderParams, type WechatNativeOrderResponse, type WechatNewCreateOrderRequest, type WechatOrderQueryResponse, type WechatPayConfig, type WechatPayMethod, WechatPayV3Client, WechatPayV3Signer, WechatProvider, type WechatProviderConfig, type WechatRefundParams, type WechatRefundQueryResponse, type WechatRefundResponse, aesGcmDecrypt, base64UrlDecode, base64UrlEncode, callStatusHooks, createAlipayNotifyHandlerV2, createAlipayProvider, createNotifyHandlerV2, createPaymentManagerV2, createWechatNotifyHandlerV2, createWechatProvider, defaultProviderFactory, formatAmount, generateJSAPIPayParams, generateNonce, generateOrderNo, generateTimestamp, generateUUID, getConfig, getRegisteredProviderInfo, loadConfigFromEnv, mergeConfig, parseAmount, registerBuiltInProviders, safeCompare, signWithRSA, validateAlipayConfig, validateOrderNo, validateWechatConfig, verifyWechatSignature, verifyWithRSA, verifyWithRSA2, version };
