import type { JSXElement } from 'solid-js'; export declare class CodeLive extends HTMLElement { timer?: NodeJS.Timeout; connected: boolean; _source?: string; _error?: Error; _components?: MDXComponents; _transform?: TransformOption; _renderJsx: (dom: (...args: Any) => JSX.Element, root: ShadowRoot | HTMLElement) => VoidFunction | void; _worker: Worker | undefined; _style: HTMLStyleElement | undefined; scriptRegex: RegExp; cleanup?: VoidFunction | void; static get observedAttributes(): string[]; workerMessage(e: MessageEvent): void; compilerScript(code: string, component?: {}): any; get renderJsx(): (dom: (...args: Any) => JSX.Element, root: ShadowRoot | HTMLElement) => VoidFunction | void; set renderJsx(next: (dom: (...args: Any) => JSX.Element, root: ShadowRoot | HTMLElement) => VoidFunction | void); get error(): string | void; set error(next: Error | undefined); get transform(): TransformOption; set transform(next: TransformOption); get components(): MDXComponents; set components(next: MDXComponents); get source(): string; set source(next: string); setupWorker(enable: boolean): void; get jsx(): boolean; set jsx(next: boolean); get shadow(): boolean; set shadow(next: boolean); get container(): ShadowRoot | CodeLive; set container(_next: undefined); mount(): void; attributeChangedCallback(name: string, old: string, next: string): void; connectedCallback(): void; dispose(): void; disconnectedCallback(): void; static registry(): void; } type FunctionComponent = (props: Props) => JSX.Element | null; type ClassComponent = new (props: Props) => JSX.ElementClass; type Component = FunctionComponent | ClassComponent | keyof JSX.IntrinsicElements; interface NestedMDXComponents { [key: string]: NestedMDXComponents | Component; } export type MDXComponents = NestedMDXComponents & { [Key in keyof JSX.IntrinsicElements]?: Component; } & { /** * If a wrapper component is defined, the MDX content will be wrapped inside of it. */ wrapper?: Component; }; export interface TransformOption { transforms?: ('jsx' | 'typescript' | 'flow' | 'imports' | 'react-hot-loader' | 'jest')[]; disableESTransforms?: boolean; jsxRuntime?: 'classic' | 'automatic' | 'preserve'; production?: boolean; jsxImportSource?: string; jsxPragma?: string; jsxFragmentPragma?: string; preserveDynamicImport?: boolean; injectCreateRequireForImportRequire?: boolean; enableLegacyTypeScriptModuleInterop?: boolean; enableLegacyBabel5ModuleInterop?: boolean; sourceMapOptions?: { compiledFilename: string; }; filePath?: string; } export interface CodeLiveProps { source?: string; components?: MDXComponents | Record; /** 是否为jsx语法 */ jsx?: boolean; /** jsx语法的 render 函数 */ renderJsx?(dom: () => JSXElement, root: ShadowRoot): VoidFunction; transform?: TransformOption; /** 是否使用 shadow dom */ shadow?: boolean | 'true' | 'false'; } export interface CodeLiveElement extends CodeLiveProps { ref?: CodeLiveElement | { current: CodeLiveElement | null; }; } interface CustomElementTags { 'n-code-live': CodeLiveElement; } declare module 'solid-js' { namespace JSX { interface IntrinsicElements extends CustomElementTags { } } } declare module 'react' { namespace JSX { interface IntrinsicElements extends CustomElementTags { } } interface HTMLElementTagNameMap extends CustomElementTags { } } declare global { export namespace JSX { interface IntrinsicElements extends CustomElementTags { } interface ElementClass { } type Element = Any; } } type Any = any; export default CodeLive;