| | |
| | | * @see {@link https://vuejs.org/api/reactivity-core.html#reactive} |
| | | */ |
| | | export declare function reactive<T extends object>(target: T): Reactive<T>; |
| | | declare const ShallowReactiveMarker: unique symbol; |
| | | export type ShallowReactive<T> = T & { |
| | | [ShallowReactiveMarker]?: true; |
| | | }; |
| | | declare class ShallowReactiveBrandClass { |
| | | private __shallowReactiveBrand?; |
| | | } |
| | | type ShallowReactiveBrand = ShallowReactiveBrandClass; |
| | | export type ShallowReactive<T> = T & ShallowReactiveBrand; |
| | | /** |
| | | * Shallow version of {@link reactive}. |
| | | * |
| | |
| | | * that contains refs. |
| | | */ |
| | | export declare function proxyRefs<T extends object>(objectWithRefs: T): ShallowUnwrapRef<T>; |
| | | export type CustomRefFactory<T> = (track: () => void, trigger: () => void) => { |
| | | export type CustomRefFactory<T, S = T> = (track: () => void, trigger: () => void) => { |
| | | get: () => T; |
| | | set: (value: T) => void; |
| | | set: (value: S) => void; |
| | | }; |
| | | /** |
| | | * Creates a customized ref with explicit control over its dependency tracking |
| | |
| | | * @param factory - The function that receives the `track` and `trigger` callbacks. |
| | | * @see {@link https://vuejs.org/api/reactivity-advanced.html#customref} |
| | | */ |
| | | export declare function customRef<T>(factory: CustomRefFactory<T>): Ref<T>; |
| | | export declare function customRef<T, S = T>(factory: CustomRefFactory<T, S>): Ref<T, S>; |
| | | export type ToRefs<T = any> = { |
| | | [K in keyof T]: ToRef<T[K]>; |
| | | }; |
| | | type ArrayStringKey<T> = T extends readonly any[] ? number extends T['length'] ? `${number}` : never : never; |
| | | type ToRefKey<T> = keyof T | ArrayStringKey<T>; |
| | | type ToRefValue<T extends object, K extends ToRefKey<T>> = K extends keyof T ? T[K] : T extends readonly (infer V)[] ? K extends ArrayStringKey<T> ? V : never : never; |
| | | /** |
| | | * Converts a reactive object to a plain object where each property of the |
| | | * resulting object is a ref pointing to the corresponding property of the |
| | |
| | | * @see {@link https://vuejs.org/api/reactivity-utilities.html#toref} |
| | | */ |
| | | export declare function toRef<T>(value: T): T extends () => infer R ? Readonly<Ref<R>> : T extends Ref ? T : Ref<UnwrapRef<T>>; |
| | | export declare function toRef<T extends object, K extends keyof T>(object: T, key: K): ToRef<T[K]>; |
| | | export declare function toRef<T extends object, K extends keyof T>(object: T, key: K, defaultValue: T[K]): ToRef<Exclude<T[K], undefined>>; |
| | | export declare function toRef<T extends object, K extends ToRefKey<T>>(object: T, key: K): ToRef<ToRefValue<T, K>>; |
| | | export declare function toRef<T extends object, K extends ToRefKey<T>>(object: T, key: K, defaultValue: ToRefValue<T, K>): ToRef<Exclude<ToRefValue<T, K>, undefined>>; |
| | | /** |
| | | * This is a special exported interface for other packages to declare |
| | | * additional types that should bail out for ref unwrapping. For example |
| | |
| | | */ |
| | | export interface RefUnwrapBailTypes { |
| | | } |
| | | export type ShallowUnwrapRef<T> = { |
| | | export type ShallowUnwrapRef<T> = T extends ShallowReactiveBrand ? T : { |
| | | [K in keyof T]: DistributeRef<T[K]>; |
| | | }; |
| | | type DistributeRef<T> = T extends Ref<infer V, unknown> ? V : T; |
| | | export type UnwrapRef<T> = T extends ShallowRef<infer V, unknown> ? V : T extends Ref<infer V, unknown> ? UnwrapRefSimple<V> : UnwrapRefSimple<T>; |
| | | type UnwrapRefSimple<T> = T extends Builtin | Ref | RefUnwrapBailTypes[keyof RefUnwrapBailTypes] | { |
| | | [RawSymbol]?: true; |
| | | } ? T : T extends Map<infer K, infer V> ? Map<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Map<any, any>>> : T extends WeakMap<infer K, infer V> ? WeakMap<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakMap<any, any>>> : T extends Set<infer V> ? Set<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Set<any>>> : T extends WeakSet<infer V> ? WeakSet<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakSet<any>>> : T extends ReadonlyArray<any> ? { |
| | | } ? T : T extends ShallowReactiveBrand ? T : T extends Map<infer K, infer V> ? Map<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Map<any, any>>> : T extends WeakMap<infer K, infer V> ? WeakMap<K, UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakMap<any, any>>> : T extends Set<infer V> ? Set<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof Set<any>>> : T extends WeakSet<infer V> ? WeakSet<UnwrapRefSimple<V>> & UnwrapRef<Omit<T, keyof WeakSet<any>>> : T extends ReadonlyArray<any> ? { |
| | | [K in keyof T]: UnwrapRefSimple<T[K]>; |
| | | } : T extends object & { |
| | | [ShallowReactiveMarker]?: never; |
| | | } ? { |
| | | } : T extends object ? { |
| | | [P in keyof T]: P extends symbol ? T[P] : UnwrapRef<T[P]>; |
| | | } : T; |
| | | |
| | |
| | | export declare class EffectScope { |
| | | detached: boolean; |
| | | private _isPaused; |
| | | readonly __v_skip = true; |
| | | constructor(detached?: boolean); |
| | | get active(): boolean; |
| | | pause(): void; |