import { type BindDataModelOptions, type DataModel } from './types.js'; /** * Applies `data-bind-*` bindings under a root element and wires optional * model reactivity via `observable.watch(model, '', ...)`. * * Supported syntax: * - `data-bind-text="path | pipe[:arg]"` => textContent * - `data-bind-html="path | pipe[:arg]"` => innerHTML * - `data-bind-href="path | pipe[:arg]"` => attribute binding * - `data-bind-onclick="actionPath"` => event binding * - `data-bind-class-active="path | pipe[:arg]"` => class toggle * - `data-bind-context="path"` => subtree context switch * - quoted pipe args are supported, e.g. `| wrap:'':''` * * @example * Value bindings: * ```html *
*
* * ``` * * @example * Context switch: * ```html *
* *
* ``` * * @example * Event bindings: * ```html * *
* ``` * * @example * Custom pipes: * ```ts * bindDataModel(root, model, { * pipes: { * yesno: value => value ? 'Yes' : 'No' * } * }); * ``` */ export declare function bindDataModel(root: ParentNode, model: DataModel, options?: BindDataModelOptions): () => void;