import type { IComponent } from "./api.js"; /** * Compiles a tree of components given in any supported format incl. reactive * state values into a single, nested {@link IComponent}. * * @remarks * Supported formats/values: * * - hiccup component trees, i.e. `["tag#id.class", attribs, [...]]` * - {@link IComponent} instances * - pre-existing DOM elements * - [`ISubscribable`](https://docs.thi.ng/umbrella/rstream/interfaces/ISubscribable.html) * instances * - [`IDeref`](https://docs.thi.ng/umbrella/api/interfaces/IDeref.html) * instances * - functions embedded in hiccup, i.e. either: * - `[fn, ...args]` * - `["tag", {}, ... noArgFn ...]` * * Any other value type will be wrapped in a `` element. Reactive * `ISubscribable` values can be used as element attributes or element * body/children. For the former, a subscription will be added to update the * target attribute. If used as element body, the reactive value will be wrapped * using a {@link $sub} `` with the value as its reactive body. * * If given any of the supported embedded function forms, the function will be * called with given args (or without) and the result passed back to * `$compile()`. * * **Important:** Use {@link $replace}, {@link $refresh} or {@link $switch} to * wrap any reactive values/subscriptions which produce actual HTML * elements/components/subtrees (in hiccup format). See docs for these functions * for details & examples. Not using any of these wrappers will result in * unexpected outcomes. * * Also see {@link $wrapText}, {@link $wrapHtml} or {@link $wrapEl} for DOM * element related component wrappers. * * @param tree - */ export declare const $compile: (tree: any) => IComponent; //# sourceMappingURL=compile.d.ts.map