/** * Returns a non reactive copy of the store object. * It will attempt to preserver the original reference unless the value has been modified. * @param item store proxy object */ export declare function snapshot(item: T): T; export declare function snapshot(item: T, map?: Map, lookup?: WeakMap): T; /** * Returns a non-reactive snapshot of the store while subscribing to all nested changes. * Subscribes to `$TRACK` at every level so that any deep change triggers recomputation, * and returns plain (non-proxy) data. Works correctly with `reconcile()`. * @param store store proxy object */ export declare function deep(store: T): T; type DistributeOverride = T extends undefined ? F : T; type Override = T extends any ? U extends any ? { [K in keyof T]: K extends keyof U ? DistributeOverride : T[K]; } & { [K in keyof U]: K extends keyof T ? DistributeOverride : U[K]; } : T & U : T & U; type OverrideSpread = T extends any ? { [K in keyof ({ [K in keyof T]: any; } & { [K in keyof U]?: any; } & { [K in U extends any ? keyof U : keyof U]?: any; })]: K extends keyof T ? Exclude | T[K] : U extends any ? U[K & keyof U] : never; } : T & U; type Simplify = T extends any ? { [K in keyof T]: T[K]; } : T; type _Merge = T extends [ infer Next | (() => infer Next), ...infer Rest ] ? _Merge> : T extends [...infer Rest, infer Next | (() => infer Next)] ? Override<_Merge, Next> : T extends [] ? Curr : T extends (infer I | (() => infer I))[] ? OverrideSpread : Curr; export type Merge = Simplify<_Merge>; export declare function merge(...sources: T): Merge; export type Omit = { [P in keyof T as Exclude]: T[P]; }; export declare function omit, K extends readonly (keyof T)[]>(props: T, ...keys: K): Omit; export {};