/**
 * Caches results of the function passed in as
 * the argument to the constructor.
 *
 * If the key can be garbage collected, it will be.
 */
export declare class WeakMemo<TKey extends object, TValue, TArgs extends unknown[]> {
    #private;
    constructor(make: (key: TKey, ...args: TArgs) => TValue);
    getOrMake(key: TKey, ...args: TArgs): TValue;
}
