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 {};