import { Fragment, Host, jsx, jsxs } from "./runtime.js"; import { Component } from "./component.js"; //#region src/jsx-runtime.d.ts declare namespace JSX { type Element = Component.Node; type ElementType = keyof IntrinsicElements | ((props: any) => Component.Node) | (abstract new (...args: any[]) => ElementClass); /** * Gates class element types on the `render` contract alone - requiring full * `Component` assignability trips contravariance on `props` members (e.g. * the `is` callback narrows per subclass), rejecting every subclass. */ interface ElementClass { render(props?: any): Component.Node; } interface ElementAttributesProperty { props: {}; } interface ElementChildrenAttribute { children: {}; } interface IntrinsicAttributes { key?: string | number | null; } /** * Host tag manifest, via the {@link Host} seam. Resolves to `{}` until an * adapter augments `Host` with `intrinsics` - agnostic code is * components-only by design, since it cannot know what tags a host renders. */ type IntrinsicElements = Host extends { intrinsics: infer T extends object; } ? T : {}; } //#endregion export { Fragment, JSX, jsx, jsxs }; //# sourceMappingURL=jsx-runtime.d.ts.map