import type { HTML } from './html.js';
type JSXElementConstructor
= (props: P) => OsmosNode;
export type OsmosElement
| symbol = string | JSXElementConstructor | symbol> = {
$$typeof: symbol;
type: T;
props: P;
hash?: string;
};
export type AwaitedOsmosNode = OsmosElement | string | number | bigint | Iterable | boolean | null | undefined;
export type OsmosNode = OsmosElement | string | number | bigint | Iterable | boolean | null | undefined | Promise;
export interface FunctionComponent {
(props: P): OsmosNode;
}
export type FC
= FunctionComponent
;
export type ComponentProps> = T extends JSXElementConstructor ? Props : T extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[T] : {};
export type PropsWithChildren = {
children?: OsmosNode;
} & P;
declare global {
namespace JSX {
type ElementType
= string | JSXElementConstructor;
interface Element extends OsmosElement {
}
interface ElementAttributesProperty {
$props: {};
}
interface ElementChildrenAttribute {
children: {};
}
interface IntrinsicAttributes {
}
interface IntrinsicElements extends HTML.Elements, HTML.SVGElements {
}
}
}
export {};