/** * Copyright (c) 2018-2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ export interface Reference { readonly value: T; usageCount: number; } export declare function createReference(value: T, usageCount?: number): { value: T; usageCount: number; }; export interface ReferenceItem { free: () => void; readonly value: T; } export declare function createReferenceItem(ref: Reference): { free: () => void; value: T; }; export interface ReferenceCache { get: (props: P) => ReferenceItem; clear: () => void; readonly count: number; readonly values: T[]; dispose: () => void; } export declare function createReferenceCache(hashFn: (props: P) => string, ctor: (props: P) => T, deleteFn: (v: T) => void): ReferenceCache;