import { Network } from '@btc-vision/bitcoin';
import Agent from 'undici/types/agent.js';
import { AbstractRpcProvider } from './AbstractRpcProvider.js';
import { JsonRpcPayload } from './interfaces/JSONRpc.js';
import { JsonRpcCallResult } from './interfaces/JSONRpcResult.js';
export interface JSONRpcProviderConfig {
    readonly url: string;
    readonly network: Network;
    readonly timeout?: number;
    readonly fetcherConfigurations?: Agent.Options;
    readonly useThreadedParsing?: boolean;
    readonly useThreadedHttp?: boolean;
}
export declare class JSONRpcProvider extends AbstractRpcProvider {
    readonly url: string;
    private readonly timeout;
    private readonly fetcherConfigurations;
    private readonly useThreadedParsing;
    private readonly useThreadedHttp;
    private _fetcherWithCleanup;
    constructor(config: JSONRpcProviderConfig);
    private get fetcher();
    close(): Promise<void>;
    _send(payload: JsonRpcPayload | JsonRpcPayload[]): Promise<JsonRpcCallResult>;
    protected providerUrl(url: string): string;
    private parseResponse;
}
