import type { Hash } from '@ariestools/sdk';
import type { BlockContextRead } from '@xyo-network/xl1-protocol/protocol-lib';
import { LRUCache } from 'lru-cache';
/** Function type for Hydrate operations. */
export type HydrateFunction<T> = (context: BlockContextRead, hash: Hash) => Promise<T | undefined>;
/** HydratedCache implementation. */
export declare class HydratedCache<T extends {}> {
    protected readonly cache: LRUCache<Hash, T>;
    protected context: BlockContextRead;
    protected readonly hydrateFunction: HydrateFunction<T>;
    /** Creates an instance with the supplied configuration. */
    constructor(context: BlockContextRead, hydrateFunction: HydrateFunction<T>, maxCount?: number, ttl?: number);
    /** Returns get. */
    get(hash: Hash): Promise<T | null>;
    /** Returns the has result exposed by this provider. */
    has(hash: Hash): boolean;
}
//# sourceMappingURL=HydratedCache.d.ts.map