import { CachingMechanismInterface } from "../interfaces";
import { RateLimitedProvider } from "./rateLimitedProvider";
export declare class CacheProvider extends RateLimitedProvider {
    readonly redisClient?: CachingMechanismInterface | undefined;
    readonly standardTtlBlockDistance: number;
    readonly noTtlBlockDistance: number;
    readonly providerCacheTtl: number;
    readonly getBlockByNumberPrefix: string;
    readonly getLogsCachePrefix: string;
    readonly callCachePrefix: string;
    readonly getTransactionReceiptPrefix: string;
    readonly baseTTL: number;
    constructor(providerCacheNamespace: string, redisClient?: CachingMechanismInterface | undefined, standardTtlBlockDistance: number | undefined, noTtlBlockDistance: number | undefined, providerCacheTtl: number | undefined, ...jsonRpcConstructorParams: ConstructorParameters<typeof RateLimitedProvider>);
    send(method: string, params: Array<unknown>): Promise<unknown>;
    private buildRedisKey;
    private cacheType;
    private getBlockNumberFromRpcResponse;
    private cacheTypeForBlock;
}
