import { RpcTransport } from "@solana/kit";
import { SolanaClusterRpcFactory } from "./baseRpcFactories";
import { RateLimitedSolanaRpcFactory } from "./rateLimitedRpcFactory";
import { Logger } from "winston";
export declare class RetrySolanaRpcFactory extends SolanaClusterRpcFactory {
    readonly retries: number;
    readonly retryDelaySeconds: number;
    protected rateLimitedTransport: RpcTransport;
    protected logger: Logger;
    constructor(retries: number, retryDelaySeconds: number, ...rateLimitedConstructorParams: ConstructorParameters<typeof RateLimitedSolanaRpcFactory>);
    createTransport(): RpcTransport;
    /**
     * Retry wrapper for transport calls with Solana-specific error handling.
     * @param transportCall Function that makes the transport call
     * @param args Original transport arguments for logging
     * @returns Promise that resolves to the transport response
     */
    private _tryCall;
    /**
     * Determine whether a Solana RPC error indicates an unrecoverable error that should not be retried.
     * @param method RPC method name
     * @param error Error object from the RPC call
     * @returns True if the request should be aborted immediately, otherwise false
     */
    private shouldFailImmediate;
}
