import { TTL } from '../shared/ttl'; // Key-value types for strictly typed storage. export type DefaultSchema = Record; // eslint-disable-line @typescript-eslint/no-explicit-any export type Keys = keyof S & string; // strip number | symbol; export type ComputeFn = () => Res | Promise; export type KeyParams = { ttl?: TTL }; export type GetArgs, S extends DefaultSchema> = | [K, ComputeFn] | [K, KeyParams, ComputeFn];