// global JSX namespace registration
-import { JSX as JSXInternal } from './jsx-runtime'
+// somehow we have to copy=pase the jsx-runtime types here to make TypeScript happy
+import { VNode, VNodeRef } from '@vue/runtime-dom'
+import { IntrinsicElementAttributes } from './jsx-runtime/dom'
+
+export * from './jsx-runtime/dom'
+
+export type ReservedProps = {
+ key?: string | number | symbol
+ ref?: VNodeRef
+ ref_for?: boolean
+ ref_key?: string
+}
+
+export type NativeElements = {
+ [K in keyof IntrinsicElementAttributes]: IntrinsicElementAttributes[K] &
+ ReservedProps
+}
declare global {
namespace JSX {
- interface Element extends JSXInternal.Element {}
- interface ElementClass extends JSXInternal.ElementClass {}
- interface ElementAttributesProperty
- extends JSXInternal.ElementAttributesProperty {}
- interface IntrinsicElements extends JSXInternal.IntrinsicElements {}
- interface IntrinsicAttributes extends JSXInternal.IntrinsicAttributes {}
+ export interface Element extends VNode {}
+ export interface ElementClass {
+ $props: {}
+ }
+ export interface ElementAttributesProperty {
+ $props: {}
+ }
+ export interface IntrinsicElements extends NativeElements {
+ // allow arbitrary elements
+ // @ts-ignore suppress ts:2374 = Duplicate string index signature.
+ [name: string]: any
+ }
+ export interface IntrinsicAttributes extends ReservedProps {}
}
}
-
-export {}