import { TargetState, TransitionOptions, UIRouter } from "@uirouter/core"; import { nothing } from "lit"; import type { SrefTargetParams } from "./sref-active.js"; import { UiSrefTargetEvent } from "./sref-internals.js"; import { AriaCurrentValue, AriaCurrentValues, SrefStatus, TransEvt } from "./ui-sref-active.js"; /** * The target bookkeeping every sref-status binding does: a named target built * from {@link SrefTargetParams}, or — container mode — the latest target of * each {@link srefHref} link that announced itself, keyed by its element. * * Shared by the attribute-part directives and {@link SrefStatusController} so * the two agree on target resolution, rebuilding, pruning and merging. * * @internal */ export declare class SrefTargets { /** the router the targets are built against; unset until one is found */ router: UIRouter | undefined; /** the latest params seen; `state` picks named over container mode */ params: SrefTargetParams; /** the enclosing view's state name, the default for `options.relative` */ relative: string | undefined; /** the named target, or `null` in container mode */ private explicit; /** container mode: each enclosed link's latest target */ private readonly links; /** `params.options` over the enclosing view's `relative` default */ options(): TransitionOptions; /** (Re)builds the named target from `params`, `relative` and `router`. */ setExplicit(): void; /** Records the target an enclosed link just announced. */ onLink(event: UiSrefTargetEvent): void; /** Forgets a link whose part left the DOM; false when it was not ours. */ onLinkRemoved(event: Event): boolean; /** * A `TargetState` pins its definition when built, so one made before its * state was registered stays non-existent: rebuild every target. */ rebuild(): void; /** The targets whose statuses merge, pruning links that left the DOM. */ list(): TargetState[]; /** The merged status of every target, or `undefined` when there is none. */ status(event?: TransEvt): SrefStatus | undefined; } /** * The `aria-current` token for a status, or `nothing` to leave the attribute * off. `exact` and `active` are branches of one decision, not the union * `classList` gets: an exactly-active target never falls through to `active`. * * @internal */ export declare function resolveAriaCurrent(status: SrefStatus, value?: AriaCurrentValue | AriaCurrentValues): AriaCurrentValue | typeof nothing; //# sourceMappingURL=sref-status.d.ts.map