export declare function memo_( def:rmemo_def_T, ...subscriber_a:rmemo_subscriber_T[] ):memo_T export declare function sig_( init_val:val_T, ...subscriber_a:rmemo_subscriber_T[] ):sig_T export declare function memosig_( def:rmemo_def_T, ...subscriber_a:rmemo_subscriber_T[] ):sig_T // TODO: lock_memosig_ export declare function on(rmemo:rmemo_T):void export declare function off(rmemo:rmemo_T):void export type rmemo_T = memo_T|sig_T export type memo_T = (()=>val_T)&{ readonly _:val_T readonly val:val_T r?:WeakRef<()=>val_T> memor:WeakRef<()=>val_T>[] } export type sig_T = (()=>val_T)&{ _:val_T readonly val:val_T r?:WeakRef<()=>val_T> memor:WeakRef<()=>val_T>[] } export type rmemo_val_T = sig_T extends { ():infer val_T } ? val_T : unknown export type rmemo_def_T = (sig:sig_T)=>val_T export type rmemo_subscriber_T = (sig:sig_T)=>unknown