/**
 * @license
 * Copyright 2026 Kai-Orion & Sandlada
 * SPDX-License-Identifier: MIT
 *
 * @fileoverview
 * Internal base class for `mdc-on-this-page-item` — an in-page navigation link item.
 */
import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
import type { IOnThisPageItem } from '../on-this-page.interface';
export declare const ON_THIS_PAGE_ITEM_REQUEST_ACTIVATE: unique symbol;
declare const BaseOnThisPageItem_base: Omit<typeof LitElement, "prototype"> & (new () => LitElement & object & import("../../../utils/behaviors/element-internals").WithElementInternals & import("../../ripple/ripple-options.mixin").IMixinRippleOptions & import("../../ripple/ripple-options.mixin").IMixinRippleAttributes & import("../../focus-ring/focus-ring-options.mixin").IMixinFocusRingOption);
export declare abstract class BaseOnThisPageItem extends BaseOnThisPageItem_base implements IOnThisPageItem {
    static shadowRootOptions: {
        clonable?: boolean;
        customElementRegistry?: CustomElementRegistry | null;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
        delegatesFocus: boolean;
    };
    /** Destination URL/anchor hash, e.g. "#variants" or "variants". */
    href: string;
    /** Optional anchor target or section ID without leading `#`. */
    target: string;
    /** Text label for the item. */
    label: string;
    /** Whether this item is currently active. */
    active: boolean;
    /** Whether this item is disabled. */
    disabled: boolean;
    /** Hierarchy level (1, 2, 3...) for nested headings. */
    level: number;
    /** Item index within parent container. */
    index: number;
    protected readonly itemElement: HTMLElement | null;
    protected readonly labelElement: HTMLElement | null;
    get rippleControl(): HTMLElement | null;
    get focusRingControl(): HTMLElement | null;
    constructor();
    /** Resolves the clean target ID for scrolling. */
    get targetId(): string;
    /** Returns the DOMRect of the item container element. */
    getItemBounds(): DOMRect | null;
    /** Returns the DOMRect of the text label element inside the item. */
    getLabelBounds(): DOMRect | null;
    protected getRenderClasses(): {
        [x: string]: boolean;
        item: boolean;
        active: boolean;
        disabled: boolean;
    };
    protected render(): TemplateResult;
    protected updated(changedProperties: PropertyValues<this>): void;
    private readonly handleClick;
    private readonly handleKeyDown;
}
export {};
//# sourceMappingURL=base-on-this-page-item.d.ts.map