import type { Awaitable } from '../types/misc.ts'; import type { GetOptions, Store } from './store.ts'; export interface GetCachedOptions { signal?: AbortSignal; noCache?: boolean; allowStale?: boolean; } export interface GetterOptions { signal?: AbortSignal; noCache: boolean; } export type Getter = (key: K, options: GetterOptions, storedValue: V | undefined) => Awaitable; export interface CachedGetterOptions { isStale?(key: K, value: V): Awaitable; onStoreError?(err: unknown, key: K, value: V): Awaitable; deleteOnError?(err: unknown, key: K, value: V): Awaitable; } export declare class CachedGetter { #private; readonly getter: Getter; readonly store: Store; readonly options: CachedGetterOptions; constructor(getter: Getter, store: Store, options?: CachedGetterOptions); get(key: K, options?: GetCachedOptions): Promise; getStored(key: K, options?: GetOptions): Promise; setStored(key: K, value: V): Promise; deleteStored(key: K, _cause?: unknown): Promise; } //# sourceMappingURL=cached-getter.d.ts.map