import { expectTypeOf } from 'vitest' import type { VNode } from 'vue' /** * Expect the type of a component emit payload. */ export function expectEmitPayloadType>(_event: E, _cb: () => T) { return expectTypeOf[E]>>() } type Events = T extends { __ctx?: { props: infer Props } } ? { [K in keyof Props as K extends `on${infer E}${infer Rest}` ? `${Lowercase}${Rest}` : never]: NonNullable extends (...args: infer P) => any ? P : never } : never