import { type Mountable, type Producer, type Reactive } from './build-context.js'; /** A reactive text node bound to a signal accessor. Returns a `Mountable` that * builds the text node and registers its binding when placed. `componentRooted` * (set by the authoring layer from the origin handle) drives correct row rebasing; * compiler-emitted calls omit it and rely on dep-string inference. */ export declare function signalText(produce: Producer, deps: readonly string[], componentRooted?: boolean): Mountable; /** A static text node. */ export declare function staticText(value: string): Mountable; export type EventHandler = (ev: Event) => void; export type PropValue = string | number | boolean | null | Reactive | EventHandler; /** A child slot: a lazy `Mountable` (everything LLui builds — elements, text, and * structural primitives — is a Mountable, materialized at placement), or a bare * string/number coerced to a static text node at append time (so `div(['hi', 42])` * works without an explicit `text(...)` — the same coercion every mainstream framework * does). There is no bare `Node` here: a node lives in one place, so exposing one would * reintroduce the silent double-placement footgun. Wrap raw DOM via `foreign`. */ export type ChildNode = Mountable | string | number; /** The result of a render callback / view: lazy `Mountable`s, materialized at * placement by `populate`/`runBuild`. */ export type Renderable = readonly Mountable[]; /** Apply a single non-reactive prop VALUE to `node`: `style.*` → individual style * property, form-control IDL props (`value`/`checked`/`selected`/`indeterminate`) * → live property assignment, everything else → content attribute (null/false * removes, true sets empty). Exported so a compiler-emitted {@link RowFactory}'s * reactive-prop `commit` routes through the same DOM-application logic the * authoring path uses (rather than re-inlining the IDL/style quirks). */ export declare function applyAttr(node: Element, name: string, value: unknown): void; /** Build an element. `on*` function props become event listeners; `react(...)` * props become reactive bindings; everything else is a static attribute. Returns a * `Mountable` that creates the element and materializes its children when placed. */ export declare function el(tag: string, props?: Readonly>, children?: readonly ChildNode[]): Mountable; /** Build an SVG-namespaced element (svg/path/g/circle/…). Same prop/child * semantics as `el`, via createElementNS. */ export declare function elNS(tag: string, props?: Readonly>, children?: readonly ChildNode[]): Mountable; //# sourceMappingURL=element.d.ts.map