/** * trying to simultate a Clojure Atom */ export declare class Atom { value: T; listeners: { [name: string]: Array<(prev: T, next: T) => void>; }; constructor(value: T); deref(): T; reset(value: T): void; swap(f: (value: T) => T): void; addWatch(name: string, f: (prev: T, next: T) => void): void; removeWatch(name: string): void; private triggerListeners; }