declare type AsRef = { $$valtioRef: true; }; declare type Path = (string | symbol)[]; declare type Op = [ /*op*/ 'set', /*path*/ Path, /*value*/ unknown, /*prevValue*/ unknown ] | [ /*op*/ 'delete', /*path*/ Path, /*prevValue*/ unknown ] | [ /*op*/ 'resolve', /*path*/ Path, /*value*/ unknown ] | [ /*op*/ 'reject', /*path*/ Path, /*error*/ unknown ]; declare type AnyFunction = (...args: any[]) => any; /** * This is not a public API. * It can be changed without any notice. */ export declare type INTERNAL_Snapshot = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise ? INTERNAL_Snapshot : { readonly [K in keyof T]: INTERNAL_Snapshot; }; export declare function proxy(initialObject?: T): T; export declare function getVersion(proxyObject: unknown): number | undefined; export declare function subscribe(proxyObject: T, callback: (ops: Op[]) => void, notifyInSync?: boolean): () => void; export declare function snapshot(proxyObject: T): INTERNAL_Snapshot; export declare function ref(obj: T): T & AsRef; export declare const unstable_buildProxyFunction: (objectIs?: (value1: any, value2: any) => boolean, newProxy?: (target: T, handler: ProxyHandler) => T, canProxy?: (x: unknown) => boolean, PROMISE_RESULT?: symbol, PROMISE_ERROR?: symbol, snapshotCache?: WeakMap, createSnapshot?: (version: number, target: T_1, receiver: any) => T_1, proxyCache?: WeakMap, versionHolder?: [ number ], proxyFunction?: (initialObject: T_2) => T_2) => readonly [ (initialObject: T_2) => T_2, WeakSet, symbol, symbol, symbol, (value1: any, value2: any) => boolean, (target: T, handler: ProxyHandler) => T, (x: unknown) => boolean, symbol, symbol, WeakMap, (version: number, target: T_1, receiver: any) => T_1, WeakMap, [ number ] ]; export {};