import Web3 from "web3"; type Web3ProviderOptions = ConstructorParameters[1] | ConstructorParameters[1]; type Web3Provider = InstanceType | InstanceType; interface Config { retries: number; delay: number; url: string; options?: Web3ProviderOptions; } type PartialExcept = Partial> & Pick; type Payload = Parameters[0]; type Callback = Parameters[1]; export type RetryConfig = PartialExcept; export declare class RetryProvider { private providerCaches; /** * @notice Constructs new retry provider. * @param {Array} config config object: * [ * { * retries: 3, * delay: 1 * url: https://mainnet.infura.io/v3/ACCOUNT_ID, * options: { * timeout: 15000 * } * }, * { * retries: 5, * delay: 1, * url: ws://99.999.99.99 * } * ] */ constructor(configs: RetryConfig[]); sendAsync(payload: Payload, callback: Callback): void; send(payload: Payload, callback: Callback): void; disconnect(code: number, reason: string): void; supportsSubscriptions(): boolean; _constructOrGetProvider(index: number): Web3Provider; _runRetry(fn: (provider: Web3Provider) => Promise, providerIndex?: number, retryIndex?: number, previousErrors?: Error[]): Promise; } export {};