export type ReactiveCacheListener<T> = (value: T) => void;
export interface ReactiveCacheRef<T> {
    value: T;
}
export interface ReactiveCache<T> {
    cache: Map<string, ReactiveCacheRef<T>>;
    subscribers: Map<string, Set<ReactiveCacheListener<T>>>;
}
export declare function createReactiveCache<T>(): ReactiveCache<T>;
export declare function createReactiveCacheRef<T>(cache: ReactiveCache<T>, key: string, value: T): ReactiveCacheRef<T>;
export declare function subscribeReactiveCache<T>(cache: ReactiveCache<T>, key: string, listener: ReactiveCacheListener<T>): () => void;
export declare function setReactiveCacheValue<T>(cache: ReactiveCache<T>, key: string, value: T, notify?: boolean): void;
export declare function getReactiveCacheListenerSize<T>(cache: ReactiveCache<T>, key: string): number;
