import type { MaybePromise } from './types.js'; export type QueryOneFunction = (key: K) => MaybePromise; export type QueryBulkFunction = (keys: readonly K[]) => MaybePromise>; type QueryOneArgument = { readonly singleQuery: QueryOneFunction; readonly bulkQuery?: QueryBulkFunction; }; type QueryBulkArgument = { readonly singleQuery?: QueryOneFunction; readonly bulkQuery: QueryBulkFunction; }; type QueryArgument = QueryOneArgument | QueryBulkArgument; type Store = { readonly get: (key: K) => MaybePromise; readonly set: (key: K, value: V, ttl?: number) => MaybePromise; }; export type Options = { readonly store?: Store; readonly ttl?: number; }; export declare class Cache { #private; readonly query: QueryArgument; constructor(query: QueryArgument, options?: Options); get(key: K, forceQuery?: boolean): Promise; getMany(keys: readonly K[], force?: boolean): Promise>; } export {};