/// import type { wide_ctx_T } from '../be_/index.js' export declare function memo_( def:memo_def_T, add_def_a1?:rmemo_add_def_T[] ):memo_T export declare function sig_( init_val:val_T, add_def_a1?:rmemo_add_def_T[] ):sig_T export declare function memosig_( def:memo_def_T, add_def_a1?:rmemo_add_def_T[] ):sig_T export declare function lock_memosig_( def:memo_def_T, add_def_a1?:rmemo_add_def_T[] ):sig_T export declare function memo__bind( fn:(...arg_a:A)=>R ):memo__bind_T export type memo__bind_T = ((...arg_a:A)=>R)&{ memo_( def:memo_def_T, add_def_a1?:rmemo_add_def_T[] ):memo_T } export declare function rmemo__on(rmemo:rmemo_T, off_fn?:(rmemo:rmemo_T)=>unknown):void export declare function rmemo__off(rmemo:rmemo_T):void export declare function rmemo__off__add(rmemo:rmemo_T, off_fn:(rmemo:rmemo_T)=>unknown):void export declare function rmemo__add( rmemo:rmemo_T, listener:(sig:sig_T)=>listener_val_T ):()=>void export declare function rmemo__unset(rmemo:rmemo_T):void export type rmemo_T = memo_T|sig_T|lock_memosig_T export type rmemolike_T = (()=>val_T)&E export type circular_rmemo_T = (circular_memo_T|circular_sig_T|circular_lock_memosig_T)&E export type memo_T = (()=>val_T)&{ memo_<_val_T, E = unknown>( def:memo_def_T<_val_T>, add_def_a1?:rmemo_add_def_T[] ):memo_T<_val_T, E> val:val_T readonly a:unknown readonly b:unknown readonly d:unknown readonly l:unknown readonly r:unknown readonly u:unknown readonly t:unknown }&E interface _circular_memo_T extends memo_T<_circular_memo_T> { } export type circular_memo_T = _circular_memo_T&E export type sig_T = memo_T&{ set(val:val_T):void } interface _circular_sig_T extends sig_T<_circular_sig_T> { } export type circular_sig_T = _circular_memo_T&E export type lock_memosig_T = sig_T interface _circular_lock_memosig_T extends lock_memosig_T<_circular_lock_memosig_T> { } export type circular_lock_memosig_T = _circular_lock_memosig_T&E export type rmemo_val_T = sig_T extends { ():infer val_T } ? val_T : unknown export type memo_def_T = (sig:sig_T)=>val_T export type rmemo_a_T = unknown[] export type rmemo_add_def_T = (sig:sig_T)=>unknown export type rmemo_r_T = WeakRef&{ readonly d?: ()=>rmemo_T }> export type be_rmemo_add_def_T< val_T, ns_T extends string, E = unknown, ctx_T extends wide_ctx_T = wide_ctx_T, > = (ctx:ctx_T, sig:sig_T)=>unknown