import { Logger } from "winston";
import { RpcTransport } from "@solana/kit";
import { SolanaClusterRpcFactory } from "./baseRpcFactories";
import { RateLimitedSolanaRpcFactory } from "./rateLimitedRpcFactory";
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;
    /**
     * Identify whether an error thrown was the result of an RPC provider 429 response.
     * @param error Error object from the RPC query.
     * @returns True if the response was a 429 rate-limit response.
     */
    private isRateLimitResponse;
}
//# sourceMappingURL=retryRpcFactory.d.ts.map