/** * A low-level utility for observing DOM attributes on custom elements * without coupling to Lit's reactive property/rendering lifecycle. * * Handles: * - Accumulating `observedAttributes` across multiple decorator calls * - Routing `attributeChangedCallback` to per-attribute handler functions * - Chaining with Lit's own `attributeChangedCallback` for its reactive properties * - Inheritance-safe handler maps (own map per constructor) * * @example * ```ts * // Inside a decorator: * observeAttributes(MyElement, { * 'aria-labelledby': (host, oldVal, newVal) => { ... }, * 'gds-aria-labelledby': (host, oldVal, newVal) => { ... }, * }) * ``` */ type AttrHandler = (host: any, oldValue: string | null, newValue: string | null) => void; /** * Register one or more non-reactive attribute observers on a custom element class. * * Safe to call multiple times on the same constructor — handlers accumulate * and the prototype patching is idempotent. * * @param ctor The custom element constructor (class) to patch. * @param handlers A record mapping attribute names to handler functions. */ export declare function observeAttributes(ctor: any, handlers: Record): void; export {};