`
* is inert noise. `uiSrefActive`'s `isLinkElement` asks the neighbouring
* *role*-based question for `aria-current`, which `
`
* legitimately takes. The two overlap on `
`/`` and nowhere else — do
* not unify them.
*
* @internal
*/
export declare function isNativeLink(element: Element): boolean;
/**
* Directive class that creates state-based navigation links.
*
* This directive is used internally by the {@link uiSref} directive function.
* It transforms elements (typically `` tags) into UI-Router navigation links
* by setting the `href` attribute and handling click events.
*
* @see {@link uiSref} for the public API
* @see [[AsyncDirective]]
* @see [[StateService.go]]
*
* @category directives
*/
export declare class UiSrefDirective extends AsyncDirective {
state: string | null;
params: RawParams;
options: TransitionOptions;
element: UiSrefElement | null;
uiRouter: UIRouterLit | undefined;
parentView: UiView | null;
/** this directive's own options, stripped from the transition options */
uiSrefOptions: UiSrefOptions;
href: string | null;
targetState: TargetState | null;
/** whether the href currently on the element was written by us */
private _ownsHref;
/** @internal */
unsubscribe: (() => void) | undefined;
/** @internal */
constructor(partInfo: PartInfo);
getOptions(opts?: TransitionOptions): TransitionOptions;
render(state: string, params?: RawParams, options?: TransitionOptions): typeof noChange;
/**
* Whether this render writes the `href`, warning once per element under lit's
* dev build when the 1.x default puts one on something that cannot use it.
* @internal
*/
shouldAssignHref(): boolean;
/** @internal */
seekRouter(): void;
/** @internal */
seekParentView(): void;
/** @internal */
disconnected(): void;
onClick: (event: MouseEvent) => void;
update(part: ElementPart, [state, params, options]: [string, RawParams?, UiSrefTransitionOptions?]): typeof noChange;
doRender: () => typeof noChange;
private _firstUpdated;
/**
* @internal
*/
firstUpdated(): void;
}
/**
* Directive that creates state-based navigation links.
*
* The `uiSref` directive transforms elements (typically `` tags) into
* UI-Router navigation links. It automatically generates the `href` attribute
* based on the target state and handles click events to perform state transitions.
*
* **Arguments:**
* - `state` - The target state name (can be relative like `.child` or `^.sibling`)
* - `params` - Optional state parameters (see [[RawParams]])
* - `options` - Optional transition options (see [[TransitionOptions]]), plus
* this directive's own (see {@link UiSrefOptions})
*
* @example Basic usage
* ```ts
* import { uiSref } from 'lit-ui-router';
* import { html } from 'lit';
*
* html`Go Home`
* ```
*
* @example With parameters
* ```ts
* html`
View User`
* ```
*
* @example With transition options
* ```ts
* html`
Reload Dashboard`
* ```
*
* @example Relative state references
* ```ts
* // Navigate to child state
* html`
Go to Child`
*
* // Navigate to sibling state
* html`
Go to Sibling`
* ```
*
* @example On an element that is not a link
* ```ts
* // `