import type { FocusGroupItemCollection, FocusGroupOptions, FocusGroupUpdateInfo } from "./focusgroup-items.js"; /** * @import { * FocusGroupItemCollection, * FocusGroupOptions, * FocusGroupUpdateInfo, * } from "./focusgroup-items.js" * @import {FocusGroupDefinition} from "./utils.js" */ export declare class FocusGroup { #private; /** * @param {HTMLElement!} owner - The focus group owner element. * @param {FocusGroupItemCollection} items - The items collection providing * item discovery and queries. * @param {FocusGroupOptions} [options] */ constructor(owner: HTMLElement, items: FocusGroupItemCollection, options?: FocusGroupOptions); /** * Tears down the focus group: disables the owner proxy, removes all event * listeners (via the abort signal), then disconnects the items collection * if it supports it. * * Ordering matters: owner-proxy teardown can trigger `flushAllObservers()`, * which expects the items' observer to still be in the global registry. * The items' own `disconnect()` is therefore called last. * * NOTE: This method does not undecorate the elements. Call it only after * the focusgroup owner has been removed from the DOM. */ disconnect(): void; /** * Reconciles decoration state in response to relevant changes. Call this * whenever the focus group should refresh — e.g. items were added or * removed, the owner's `focusgroup` attribute changed, or an author set * `tabindex` on a decorated item. * * The polyfill's default `TreeWalkerItemCollection` calls this from a * `MutationObserver`. App-supplied collections (or app code that knows * when its model changed) can call it directly. * * @param {FocusGroupUpdateInfo} [info] */ update(info?: FocusGroupUpdateInfo): void; }