import type { Injector } from '@furystack/inject' import type { ChildrenList, PartialElement } from './models/index.js' import type { ResourceManager } from './services/resource-manager.js' import type { SvgAnimateAttributes, SvgAnimateMotionAttributes, SvgAnimateTransformAttributes, SvgCircleAttributes, SvgClipPathAttributes, SvgCoreAttributes, SvgDefsAttributes, SvgDescAttributes, SvgEllipseAttributes, SvgFeBlendAttributes, SvgFeColorMatrixAttributes, SvgFeCompositeAttributes, SvgFeFloodAttributes, SvgFeGaussianBlurAttributes, SvgFeMergeAttributes, SvgFeMergeNodeAttributes, SvgFeOffsetAttributes, SvgFilterAttributes, SvgForeignObjectAttributes, SvgGAttributes, SvgImageAttributes, SvgLinearGradientAttributes, SvgLineAttributes, SvgMarkerAttributes, SvgMaskAttributes, SvgPathAttributes, SvgPatternAttributes, SvgPolygonAttributes, SvgPolylineAttributes, SvgRadialGradientAttributes, SvgRectAttributes, SvgSetAttributes, SvgStopAttributes, SvgSvgAttributes, SvgSymbolAttributes, SvgTextAttributes, SvgTextPathAttributes, SvgTitleAttributes, SvgTspanAttributes, SvgUseAttributes, } from './svg-types.js' declare global { // eslint-disable-next-line @typescript-eslint/no-namespace export namespace JSX { interface Element extends HTMLElement { injector: Injector props: TProps updateComponent: () => void shadeChildren?: ChildrenList resourceManager: ResourceManager getRenderCount(): number } interface IntrinsicElements { /** * The tag defines a hyperlink, which is used to link from one page to another. */ a: PartialElement /** * The tag defines an abbreviation or an acronym, like "HTML", "Mr.", "Dec.", "ASAP", "ATM". */ abbr: PartialElement /** * The
tag defines the contact information for the author/owner of a document or an article. * If the
element is inside the element, it represents contact information for the document. * If the
element is inside an
element, it represents contact information for that article. */ address: PartialElement /** * The tag defines an area inside an image-map (an image-map is an image with clickable areas). * The element is always nested inside a tag. */ area: PartialElement /** * The
tag specifies independent, self-contained content. * An article should make sense on its own and it should be possible to distribute it independently from the rest of the site. */ article: PartialElement /** * The