import type { RedisKey } from "ioredis"; import type { AcquiredResult, AcquireDesire, AcquireOptions, AcquireOptionsInput } from "./Acquire"; declare type Key = RedisKey | number; declare type Awaitable = T | Promise; /** * Structural contract for custom acquire implementations injected into Cache. */ export interface AcquireHelper { acquire(key: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable, options?: AcquireOptionsInput): Promise; hashAcquire(key: Key, id: Key, amount: number, fn: (currentAmount: number, acquiredAmount: number, lackingAmount: number) => Awaitable, options?: AcquireOptionsInput): Promise; acquireMany(items: AcquireDesire[], fn: (acquireResult: AcquiredResult[]) => Awaitable, options?: AcquireOptions): Promise; hashAcquireMany(hashKey: string, items: AcquireDesire[], fn: (acquireResult: AcquiredResult[]) => Awaitable, options?: AcquireOptions): Promise; } export {};