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