interface ExoZone {     exo: (<T>(tag: string, 
interfaceGuard: undefined | InterfaceGuard<{        [M in string | number | symbol]: MethodGuard    }>, 
methods: T, 
options?: FarClassOptions<ClassContext<{}, T>>) => Guarded<T>);     exoClass: (<I, M>(tag: string, 
interfaceGuard: undefined | ExoClassInterfaceGuard<M>, 
init: I, 
methods: ExoClassMethods<M, I>, 
options?: FarClassOptions<ClassContext<ReturnType<I>, M>>) => ((...args: Parameters<I>) => Guarded<M>));     exoClassKit: (<I, F>(tag: string, 
interfaceGuardKit: undefined | ExoClassInterfaceGuardKit<F>, 
init: I, 
methodsKit: ExoClassKitMethods<F, I>, 
options?: FarClassOptions<KitContext<ReturnType<I>, GuardedKit<F>>, GuardedKit<F>>) => ((...args: Parameters<I>) => GuardedKit<F>));     makeOnce: (<T>(key: string, 
maker: ((key: string) => T)) => T);     subZone: ((label: string, 
options?: StoreOptions) => Zone);     watchPromise: ((p: Promise<any>, 
watcher: PromiseWatcher, 
...watcherArgs: unknown[]) => void); }  Properties
exo
exo: (<T>(tag: string, 
interfaceGuard: undefined | InterfaceGuard<{    [M in string | number | symbol]: MethodGuard}>, 
methods: T, 
options?: FarClassOptions<ClassContext<{}, T>>) => Guarded<T>) exoClass
exoClass: (<I, M>(tag: string, 
interfaceGuard: undefined | ExoClassInterfaceGuard<M>, 
init: I, 
methods: ExoClassMethods<M, I>, 
options?: FarClassOptions<ClassContext<ReturnType<I>, M>>) => ((...args: Parameters<I>) => Guarded<M>)) exoClassKit
exoClassKit: (<I, F>(tag: string, 
interfaceGuardKit: undefined | ExoClassInterfaceGuardKit<F>, 
init: I, 
methodsKit: ExoClassKitMethods<F, I>, 
options?: FarClassOptions<KitContext<ReturnType<I>, GuardedKit<F>>, GuardedKit<F>>) => ((...args: Parameters<I>) => GuardedKit<F>)) makeOnce
makeOnce: (<T>(key: string, 
maker: ((key: string) => T)) => T) watchPromise
watchPromise: ((p: Promise<any>, 
watcher: PromiseWatcher, 
...watcherArgs: unknown[]) => void) Type declaration
- (p, watcher, ...watcherArgs): void
 Returns void
create a singleton exo-object instance bound to this zone