import { ParserOptions } from '@babel/parser'; import { Comment, SourceLocation } from '@babel/types'; import { GeneratorOptions } from '@babel/generator'; import { Options as Options$1 } from 'prettier'; import { TemplateBuilderOptions } from '@babel/template'; interface BaseNode { type: string; leadingComments?: Comment[] | null; innerComments?: Comment[] | null; trailingComments?: Comment[] | null; start?: number | null; end?: number | null; loc?: SourceLocation | null; range?: [number, number]; extra?: Record; } type BundleType = 0 | 1; type Type = string; type Prop = any; type ContextItem = any; type HydratableInstance = any; type PublicInstance = Instance | TextInstance; type HostContext = Context; type UpdatePayload = any; type ChildSet = any; type TimeoutHandle = any; type NoTimeout = any; type SuspenseInstance = any; interface Container extends Instance { } interface TextInstance extends Instance { } interface DeepArray extends Array> { } type Path = JSX.Path; interface Props { [key: string]: Prop; } interface Instance { appendChild: (child: Instance | TextInstance) => void; children: Instance[]; commitMount: () => void; commitUpdate: (newProps: Props) => void; node: Node; props: Props; removeChild: (child: Instance | TextInstance) => void; meta: Meta; } interface Pkg { [key: string]: any; } interface Context { [key: string]: ContextItem; } interface Node extends BaseNode { body?: BaseNode[]; } interface Options { generatorOptions?: GeneratorOptions; parserOptions?: TemplateBuilderOptions; prettier?: boolean | Options$1; } interface IElement

{ propTypes: Record; defaultProps: Props; new (props?: P, parserOptions?: ParserOptions): BaseElement; } interface Meta { bodyPath: Path; parentBodyPath: Path | null; } declare class BaseElement implements Instance { static defaultProps: Props; static propTypes: Record; node: Node; props: Props; children: (Instance | TextInstance)[]; meta: Meta; constructor(baseNode: BaseNode | BaseNode[], props?: Props, meta?: Partial); getBodyPath(path?: Path | null): string; getBody(body: BaseNode | BaseNode[], path?: Path | null): BaseNode | BaseNode[]; setBody(body: BaseNode | BaseNode[], value: BaseNode | BaseNode[], path?: Path | null): BaseNode | BaseNode[]; appendChild(child: Instance | TextInstance): void; removeChild(child: Instance | TextInstance): void; commitMount(): undefined; commitUpdate(newProps: Props): void; getProps(props: Props): Props; } export { BaseElement as B, type ContextItem as C, type DeepArray as D, type HydratableInstance as H, type Instance as I, type Meta as M, type NoTimeout as N, type Options as O, type Prop as P, type SuspenseInstance as S, type Type as T, type UpdatePayload as U, type BaseNode as a, type BundleType as b, type PublicInstance as c, type HostContext as d, type ChildSet as e, type TimeoutHandle as f, type Container as g, type TextInstance as h, type Path as i, type Props as j, type Pkg as k, type Context as l, type Node as m, type IElement as n };