export interface Observer { childWatchers: Set; destructors: Set; destroy: () => void; update: () => void; destroyed: boolean; isCache: boolean; } export interface Scope { activeWatcher?: Observer; eventDeep: number; } export type Watcher = (update: boolean) => T;