import type { Ref, ShallowRef, UnwrapRef, WatchSource, WatchCallback } from "vue"; import type { Writable, MaybeUndefined } from "#utilities"; export type UnwrapRefOrGetter = T extends () => infer R ? R : UnwrapRef; export type NormalizeRef = [T] extends [Ref] ? T : [T] extends [() => infer V] ? Readonly> : S extends true ? ShallowRef : Ref; export type WatcherSource = T extends WatchSource ? T : T extends readonly WatchSource[] ? readonly [...T] : never; export type WatcherCallback = T extends WatchSource ? WatchCallback> : T extends readonly WatchSource[] ? WatchCallback, false>, UnwrapSources, U>> : never; export type UnwrapSources = { [K in keyof T]: T[K] extends WatchSource ? MaybeUndefined : never; }; //# sourceMappingURL=common.types.d.ts.map