/**
 * 聚合支付方法类
 * 核心点：
 * 1.发起支付/退款，在十秒钟后发起轮询操作，两个接口谁先返回成功用谁的结果，如果返回的失败是存在明确code信息的则全部失败
 * 2.轮询操作总查询时间2分钟，超时直接失败，单次轮询超时时间5秒，超时直接abort本次请求，间隔两秒后发起新的请求
 * 3.最终成功或者失败都需要把定时器给清理掉，并将未完成的接口abort掉
 */
import { PaymentMethodOptions } from '../types';
declare class PaymentMethod {
    /** 初始化参数 */
    private initOptions;
    private paymentNum;
    private orderId?;
    private deviceId?;
    private callback;
    private shouldContinue;
    private config;
    private controller;
    private queryController;
    private queryStartTimer;
    private globalTimeoutTimer;
    private requestTimeoutTimer;
    private queryIntervalTimer;
    private isFinished;
    private isQuerying;
    private currentActionType;
    private currentQueryId;
    private currentRunId;
    private currentQueryApi;
    constructor(options: PaymentMethodOptions);
    /**
     * 判断请求是否需要等待轮询结果
     * 1. 有明确错误code且不是超时和支付超时，则直接失败
     * @param code 错误码
     */
    private isRequestFailed;
    /**
     * 清理定时器和请求控制器
     */
    private cleanupTimersAndControllers;
    /**
     * 清理资源并重置状态
     * @param markAsFinished 是否标记为已完成（true: 操作完成; false: 准备新操作）
     */
    private clean;
    /**
     * 开始新的操作流程（统一的流程初始化）
     * @param actionType 操作类型
     * @returns 本次流程的唯一ID
     */
    private startNewOperation;
    /**
     * 处理操作过程
     */
    private handleOperationProcess;
    /**
     * 处理成功结果
     */
    private handleOperationSuccess;
    /**
     * 处理错误（最终失败）
     * @param error 错误信息
     */
    private handleOperationError;
    /**
     * 处理接口响应
     */
    private handleResponse;
    /**
     * 创建超时 Promise
     */
    private createTimeoutPromise;
    /**
     * 单次查询请求
     */
    private performQuery;
    /**
     * 安排下一次查询
     */
    private scheduleNextQuery;
    /**
     * 开始轮询
     */
    private startQuery;
    /**
     * 获取操作API和查询API
     */
    private getActionApi;
    /**
     * 执行纯查询操作（不需要先调用支付/退款接口）
     */
    private runQuery;
    /**
     * 执行操作的核心方法
     */
    private run;
    /**
     * 执行操作
     */
    private runAction;
    /**
     * 支付
     * @param params 支付参数
     */
    pay(params: Record<string, any>): void;
    /**
     * 支付取消
     * @param params 取消参数
     */
    payAction(params: Record<string, any>): void;
    /**
     * 退款
     * @param params 退款参数
     */
    refund(params: Record<string, any>): void;
    /**
     * 退款取消
     * @param params 取消参数
     */
    refundAction(params: Record<string, any>): void;
    /**
     * 支付查询（直接查询，带2分钟超时和轮询机制）
     */
    payQuery(): void;
    /**
     * 退款查询（直接查询，带2分钟超时和轮询机制）
     */
    refundQuery(): void;
    /**
     * 停止操作，后续依然可以重新发起操作
     */
    stop(): void;
    /**
     * 销毁实例（完全清理并上传日志）
     * 注意：销毁后实例不可再使用
     */
    destroy(): void;
}
export default PaymentMethod;
