export declare const enum Flags { SKIP = "[__skip__]", IS_REACTIVE = "[__isReactive__]", IS_READONLY = "[__isReadonly__]", IS_SUPERFICIAL = "[__issuperficial__]", RAW = "[__raw__]", CONTEXT = "context", GET_SETUP = "[__get_setup__]" } export declare const enum TargetType { SYSTEM = 0, INVALID = 0, COMMON = 1, COLLECTION = 2 } export interface IModelType { [Flags.SKIP]?: boolean; [Flags.IS_REACTIVE]?: boolean; [Flags.IS_READONLY]?: boolean; [Flags.IS_SUPERFICIAL]?: boolean; [Flags.RAW]?: any; } export declare const ITERATE_KEY: unique symbol; export declare let followTracking: boolean; export declare let arrayScope: { enabled: boolean; key: string; }; export declare function setFollowTracing(s: any): void; export declare function getRaw(observed: T): T; export declare const isModified: (value: any, oldValue: any) => boolean; export declare function isReadonly(value: unknown): boolean; export declare function isSuperficial(value: unknown): boolean; export declare const objectToString: () => string; export declare const propertyExist: (v: PropertyKey) => boolean; export declare const hasOwn: (val: object, key: string | symbol) => key is never; export declare const isSymbol: (val: unknown) => val is symbol; export declare const isObject: (val: unknown) => val is Record; export declare const isString: (val: unknown) => val is string; export declare const builtInSymbols: Set; export declare function mapCreator(str: string, expectsLowerCase?: boolean): (key: string) => boolean; export declare const isNonTrackableKeys: (key: string) => boolean; export declare function toTypeString(value: unknown): string; export declare function toRawType(value: unknown): string; export declare function targetTypeMap(rawType: string): TargetType; export declare function getTargetType(value: any): TargetType; export declare const isNumericKey: (key: unknown) => boolean; export declare function pauseTracking(): void; export declare function enableTracking(): void; export declare function resetTracking(): void; export declare function addArrayStack(key: any): void; export declare function removeArrayStack(): void; export declare const RefSymbol: unique symbol; export declare const sfRefMarker: unique symbol; export declare const sfReactiveMarker: unique symbol; export declare const RawSymbol: unique symbol; export interface IHook { value: T; [RefSymbol]: true; } export type BaseTypes = string | number | boolean; export type IterableCollections = Map | Set; export type WeakCollections = WeakMap | WeakSet; export type CollectionTypes = IterableCollections | WeakCollections; export interface RefUnwrapBailTypes { } export type SuperficialRef = IHook & { [sfRefMarker]?: true; }; export type UnwrapRef = T extends SuperficialRef ? V : T extends IHook ? UnwrapRefSimple : UnwrapRefSimple; export type UnwrapRefSimple = T extends Function | CollectionTypes | BaseTypes | IHook | RefUnwrapBailTypes[keyof RefUnwrapBailTypes] | { [RawSymbol]?: true; } ? T : T extends Array ? { [K in keyof T]: UnwrapRefSimple; } : T extends object & { [sfReactiveMarker]?: never; } ? { [P in keyof T]: P extends symbol ? T[P] : UnwrapRef; } : T; export type UnwrapNestedRefs = T extends IHook ? T : UnwrapRefSimple; export interface RefUnwrapValueTypes { value: T; } export type UnwrapValueRefs = T extends number ? RefUnwrapValueTypes : T extends number ? RefUnwrapValueTypes : T extends boolean ? RefUnwrapValueTypes : T extends object ? UnwrapNestedRefs : T extends Array ? UnwrapNestedRefs : UnwrapRefSimple; export declare var setupListener: any; export declare function listenSetup(key: any): void; export declare function closeSetup(): void;