import type { Element } from "./crank.js"; export declare function jsx(spans: TemplateStringsArray, ...expressions: Array): Element; /** Alias for `jsx` template tag. */ export declare const html: typeof jsx; export interface ParseElement { type: "element"; open: ParseTag; close: ParseTag | null; props: Array; children: Array; } export interface ParseValue { type: "value"; value: any; } export interface ParseTag { type: "tag"; slash: string; value: any; spanIndex?: number; charIndex?: number; } export interface ParseProp { type: "prop"; name: string; value: ParseValue | ParsePropString; } export interface ParsePropString { type: "propString"; parts: Array; } export interface ParseError { type: "error"; message: string; value: any; spanIndex?: number; charIndex?: number; } export type ExpressionTarget = ParseValue | ParseTag | ParseProp | ParseError; export interface ParseResult { element: ParseElement; targets: Array; spans: ArrayLike; } export declare function parse(spans: ArrayLike): ParseResult;