export interface AllowedComponentProps { class?: unknown style?: unknown } export interface VNodeProps { key?: string | number | symbol ref?: unknown } export type TemplateEvents = { // @ts-ignore [P in keyof T as `on${Capitalize

}`]: T[P] } export interface BaseComponent { new (): { $props: AllowedComponentProps & VNodeProps & T $slots: K } install: (vue: any) => void }