import { type ComputedRef, type DeepReadonly, type Ref } from "vue"; /** An element ref value that may be a plain element or a Vue/Kendo ref-like object exposing `$el`. */ export type RegisterableElement = HTMLElement | { $el?: HTMLElement | null; } | null; /** Functions and state returned by {@link useActiveIdRegistry}. */ export type UseActiveIdRegistryReturn = { /** The currently active id, or `null` when nothing is active. Read-only; use `activate`/`deactivate` to change it. */ activeId: DeepReadonly>; /** `true` while any id is active. */ isActive: ComputedRef; /** The registered element for the active id, or `null`. */ activeElement: ComputedRef; /** Registers (or unregisters, when `el` is `null`) the element for `id`. */ register: (id: Id, el: RegisterableElement) => void; /** Returns the currently registered element for `id`, if any. */ resolve: (id: Id) => HTMLElement | null; /** Marks `id` as active. */ activate: (id: Id) => void; /** Clears the active id. */ deactivate: () => void; /** Returns whether `id` is the currently active id. */ isIdActive: (id: Id) => boolean; }; /** * Tracks which single id, out of a rendered list of items (grid rows, tabs, * action buttons, etc.), is currently "active," alongside a registry * resolving each id to its mounted DOM element. * * This helper is useful for shared-instance patterns where one popup/menu instance * is reused across a list while a single item remains active at a time. * * @returns Active-id state, an element registry, and activation helpers. */ export declare const useActiveIdRegistry: () => UseActiveIdRegistryReturn;