import type { MaybeRefOrGetter, Ref } from "vue"; import type { Entangled, ExtendedRef, UnwrapRefOrGetter } from "#reactivity"; import type { Prettify, ValueOf, DescriptorMarked } from "#utilities"; export type EntangledProperties

, Ignore extends PropertyKey> = Omit<{ [K in keyof P]: P[K] extends Ref ? V : P[K] extends DescriptorMarked ? 'value' extends keyof D ? D['value'] extends Ref ? 'unwrap' extends keyof D ? D['unwrap'] extends false ? D['value'] : V | D['value'] : V : D['value'] : 'get' extends keyof D ? D['get'] extends (...args: any) => infer V ? V : undefined : undefined : P[K]; }, Ignore>; type ExtractEntangled = T extends ExtendedRef ? E : T extends Entangled ? P : T; export type WithEntangled, Ignore extends PropertyKey> = O extends ExtendedRef ? ExtendedRef>, Ignore | I> : O extends Entangled ? Entangled>, Ignore | I> : O & EntangledProperties, Ignore>; export type EntangledUnwrappedPropertyKeys

, Ignore extends PropertyKey> = ValueOf<{ [K in Exclude]: P[K] extends Ref ? K : P[K] extends DescriptorMarked ? D extends { value: infer V; } ? V extends Ref ? D extends { unwrap: false; } ? never : K : never : never : never; }> | (string & {}); export type EntangledUnwrappedPropertyRefs

, K extends keyof P> = P[K] extends Ref ? P[K] : P[K] extends DescriptorMarked ? D extends { value: infer V; } ? V extends Ref ? D extends { unwrap: infer U; } ? U extends false ? undefined : V : V : undefined : undefined : undefined; export type ExtendedRefImplOptions, Shallow extends boolean = boolean> = { /** * Whether the created extendedRef's underlying ref is shallow. * @default false */ shallow?: Shallow; /** * Custom extendedRef's `value` getter function. */ get?: () => UnwrapRefOrGetter; /** * Custom extendedRef's `value` setter function. */ set?: (value: U) => void; }; export {}; //# sourceMappingURL=extendedReactivity.types.d.ts.map