declare type BaseTypes = string | number | boolean; declare type Builtin = Function | Date | Error | RegExp; declare type CollectionTypes = IterableCollections | WeakCollections; declare type IterableCollections = Map | Set; declare type WeakCollections = WeakMap | WeakSet; declare type UnwrappedObject = { [P in keyof T]: UnwrapRef; }; declare type UnwrapRefSimple = T extends Builtin | CollectionTypes | BaseTypes ? T : T extends Array ? { [K in keyof T]: UnwrapRefSimple; } : T extends object ? UnwrappedObject : T; export declare type UnwrapRef = T extends Ref ? UnwrapRefSimple : UnwrapRefSimple; export declare interface Ref { value: T; } export declare type RefValue = T | Ref | UnwrapRef; export interface Dissconnect { dissconnect: () => void; } export {};