type Literal = string | number | null | undefined | boolean; type PlainArray = Array; type PlainObject = { [key: string]: Literal | PlainObject | PlainArray; }; type AIContextValues = Record; interface AIContext { Provider: AIComponent<{ children: AINode; value: T; }>; defaultValue: T; key: symbol; } type MaybePromise = T | Promise; type AIComponent = (props: P) => O; type AIObjectComponent = AIComponent>; type ReturnTypeOfAIComponent = O extends string ? Renderable : MaybePromise; declare const attachedContextSymbol: unique symbol; interface AIElement

{ /** The tag associated with this {@link AIElement}. */ tag: AIComponent

; /** The component properties. */ props: P; [attachedContextSymbol]?: Record; } type AINode = Literal | AIElement | AINode[] | PlainObject; type Renderable = AINode | Promise | AsyncGenerator; type PropsOfAIComponent> = T extends AIComponent ? P : never; declare function createAIElement

(tag: AIComponent

, props: Omit | null, ...children: [C]): AIElement

; declare function createAIElement

(tag: AIComponent

, props: Omit | null, ...children: C[]): AIElement

; declare function AIFragment({ children }: { children: AINode; }): Renderable; /** * The is used as an import source for ts/js files as the JSX transpile functinos */ /** @hidden */ declare namespace JSX { type ElementType = AIComponent; interface Element extends AIElement { } interface IntrinsicElements { } interface ElementChildrenAttribute { children: {}; } } /** @hidden */ declare function jsx(type: any, config: any, maybeKey?: any): AIElement<{ children: any[]; }>; /** @hidden */ declare const jsxDEV: typeof jsx; /** @hidden */ declare const jsxs: typeof jsx; /** @hidden */ declare const Fragment: typeof AIFragment; export { type AIContext as A, Fragment as F, JSX as J, type Literal as L, type MaybePromise as M, type PlainObject as P, type Renderable as R, type AIObjectComponent as a, type AIComponent as b, type AINode as c, type PropsOfAIComponent as d, type AIContextValues as e, createAIElement as f, AIFragment as g, type PlainArray as h, type ReturnTypeOfAIComponent as i, attachedContextSymbol as j, type AIElement as k, jsx as l, jsxDEV as m, jsxs as n };