/** * adowire client — adowire:model.live directive * * Implements real-time two-way binding for form inputs. While the base * `adowire:model="prop"` attribute is "deferred" (values are collected at * form-submit time by submit.ts), the `.live` modifier family commits * property updates to the server immediately as the user types or interacts. * * Supported attribute forms: * * adowire:model.live="prop" * → commit on every `input` event (real-time) * * adowire:model.live.blur="prop" (or adowire:model.blur="prop") * → commit only on the `blur` event (when the field loses focus) * * adowire:model.live.debounce="prop" * → debounced: wait 250 ms after the last keystroke before committing * * adowire:model.live.debounce.500ms="prop" * → custom debounce interval (parse Xms from modifiers) * * adowire:model.live.throttle="prop" * → throttled: commit at most once every 250 ms * * adowire:model.live.throttle.500ms="prop" * → custom throttle interval * * Architecture: * - Uses event delegation on `document` (same pattern as click.ts / submit.ts). * - Registers `input`, `change`, and `blur` listeners once. * - Finds the parent [adowire:id] component and calls `component.$set(prop, value)`. */ /** * Attach delegated `input`, `change`, and `blur` event listeners to `document` * for the `adowire:model.live` directive family. * * Safe to call multiple times — a guard flag prevents double-registration. * * @example * ``` * import { registerModelDirective } from './directives/model.js' * registerModelDirective() * ``` */ export declare function registerModelDirective(): void;