import type { Ref, CSSProperties, Plugin, ComputedRef } from 'vue'; export type MaybeRef = Ref | ComputedRef | T; type OptionalKeys> = { [K in keyof T]: T extends Record ? never : K; }[keyof T]; type RequiredKeys> = Exclude>; type MonoArgEmitter = (evt: K, arg?: T[K]) => void; type BiArgEmitter = (evt: K, arg: T[K]) => void; export type EventEmitter> = MonoArgEmitter> & BiArgEmitter>; export type AnyFunction = (...args: any[]) => T; export type PartialReturnType unknown> = Partial>; export type SFCWithInstall = T & Plugin; export type Nullable = T | null; export type Arrayable = T | T[]; export type RefElement = Nullable; export type CustomizedHTMLElement = HTMLElement & T; export type Indexable = Record; export type Hash = Indexable; export type TimeoutHandle = number; export type StyleValue = string | CSSProperties | StyleValue[]; export type Mutable = { -readonly [P in keyof T]: T[P]; }; export type ClassObjectType = Record; export type ClassType = string | ClassObjectType | ClassType[]; export {};