import { Log, Logger } from '@croct/logging';
import { CacheLoader, CacheProvider } from './cacheProvider';
type CacheErrorLog = Log<{
    errorMessage: string;
    errorStack?: string;
}>;
/**
 * A cache wrapper that prevents any error from the wrapped cache from propagating to the caller.
 *
 * Errors retrieving values from the cache behave as a cache miss.
 * Errors retrieving a fresh value from the loader are propagated unchanged.
 */
export declare class ErrorResilientCache<K, V> implements CacheProvider<K, V> {
    private readonly cache;
    private readonly logger;
    constructor(cache: CacheProvider<K, V>, logger: Logger<CacheErrorLog>);
    get(key: K, loader: CacheLoader<K, V>): Promise<V>;
    set(key: K, value: V): Promise<void>;
    delete(key: K): Promise<void>;
    private logLoaderError;
    private logProviderError;
}
export {};
