import { App } from 'vue'

export type VComponent<
    P = { [key: string]: any },
    E = { [key: string]: any },
    S = { [key: string]: (...args: any[]) => any }
> = ({
    new(): {
        $props: P & E,
        $slots: S
    }
} & {
    install(app: App): void
})

export interface VComponentBase {
    vID: string
}

export interface VEvent {

}

export interface VProps {

}

export interface VSlots {

}