import type { ComputedRef, Ref, ShallowRef, WritableComputedRef } from 'vue'; export type Fn = () => void; export type AnyFn = (...args: any[]) => any; export type Promisify = Promise>; export type PromisifyFn = (...args: ArgumentsType) => Promisify>; export type ArgumentsType = T extends (...args: infer U) => any ? U : never; export type MaybeRefOrGetter = MaybeRef | ComputedRef | (() => T); export type MaybeRef = T | Ref | ShallowRef | WritableComputedRef; export type FunctionArgs = (...args: Args) => Return; export type ElementOf = T extends Array ? E : never;