import * as eleva from 'eleva'; declare namespace AttrPlugin { let name: string; let version: string; let description: string; /** * Installs the plugin into the Eleva instance. * * @public * Method wrapping behavior: * - Stores original `_patchNode` in `renderer._originalPatchNode` * - Overrides `renderer._patchNode` to use enhanced attribute handling * - Adds `renderer.updateAttributes` and `eleva.updateElementAttributes` helpers * - Call `uninstall()` to restore original behavior * * @param {Eleva} eleva - The Eleva instance to enhance. * @param {AttrPluginOptions} options - Plugin configuration options. * @param {boolean} [options.enableAria=true] - Enable ARIA attribute handling. * Maps aria-* attributes to DOM properties (e.g., aria-expanded → ariaExpanded). * @param {boolean} [options.enableData=true] - Enable data attribute handling. * Syncs data-* attributes with element.dataset for consistent access. * @param {boolean} [options.enableBoolean=true] - Enable boolean attribute handling. * Treats empty strings and attribute names as true, "false" string as false. * @param {boolean} [options.enableDynamic=true] - Enable dynamic property detection. * Searches element prototype chain for property matches (useful for custom elements). * @returns {void} * @example * // Basic installation with defaults * app.use(AttrPlugin); * * @example * // Custom configuration * app.use(AttrPlugin, { * enableAria: true, * enableData: true, * enableBoolean: true, * enableDynamic: false // Disable for performance * }); * * @example * // Using ARIA attributes in templates * template: (ctx) => ` *