export type Signal= (set?: V)=> V & A; type Action= (this: { value: V }, ...a: any[])=> typeof S._ | void; type Actions= Record>; interface S { _: Symbol >(value: V, actions?: A): Signal; action>, A extends (S extends Signal ? A : never), N extends keyof A>( signal: S, name: N, ...params: A[N] extends (...args: infer P)=> any ? P : never ): void; clear(...signals: Signal): void; on(signal: Signal, onchange: (a: T)=> void, options?: AddEventListenerOptions): void } export const S: S;