/** @noSelfInFile */ import { ComponentType } from "./Component"; export declare type EmptyObject = Record; export declare type PropChildren

= P extends { children: (infer C)[]; } ? (C[] | C | undefined) : P extends { children: infer C; } ? C : Children; export declare type NodeProps

= Omit & ("children" extends keyof P ? { children: PropChildren

; } : { children?: PropChildren

; }); export interface VNode

{ type: string | ComponentType

; props: NodeProps

; key?: string | number; } export declare type Child = VNode | string | boolean | null | undefined; export declare type Children = Child | Children[]; declare type InputProps

= keyof Omit extends never ? (EmptyObject | null) : P extends { children: unknown; } ? Omit : P; declare type InputChildren

= P extends { children: (infer C)[]; } ? C[] : P extends { children: infer C; } ? [C] : Children[]; declare type CreateElement = {

(type: ComponentType

, props: InputProps

, ...children: InputChildren

): VNode; (type: T, props: InputProps

, ...children: InputChildren

): VNode; }; export declare const createElement: CreateElement; export declare const Fragment: ({ children }: { children?: Children; }) => string | boolean | VNode | Children[] | null; export {};