import { LitElement } from 'lit';
type Constructor<T = object> = new (...args: any[]) => T;
export declare class RovingTabindexInterface {
    /** @internal */
    _rovingIndex: number;
    /** @internal */
    _getRovingTargets(): HTMLElement[];
    /** @internal */
    _rovingFocus(index: number, shouldFocus?: boolean): void;
    /** @internal */
    _rovingNext(): void;
    /** @internal */
    _rovingPrev(): void;
    /** @internal */
    _rovingFirst(): void;
    /** @internal */
    _rovingLast(): void;
    /** @internal */
    _rovingCurrentIndex(): number;
}
/**
 * @mixin
 * Mixin that provides roving tabindex navigation primitives for toolbar
 * and menu components following WAI-ARIA keyboard patterns.
 *
 * Subclasses override `_getRovingTargets()` to return the focusable HTMLElements
 * in DOM order. The mixin manages tabindex across those targets (one `0`, rest `-1`)
 * and provides wrapping next/prev/first/last navigation.
 *
 * Does NOT install a keydown handler — each component defines its own
 * (horizontal vs vertical, RTL, extra keys like Enter/Escape).
 *
 * @example
 * ```typescript
 * import { RovingTabindexMixin } from './RovingTabindexMixin'
 *
 * class MyToolbar extends RovingTabindexMixin(LitElement) {
 *   _getRovingTargets(): HTMLElement[] {
 *     return Array.from(this.querySelectorAll('button'))
 *   }
 * }
 * ```
 */
export declare const RovingTabindexMixin: <T extends Constructor<LitElement>>(superClass: T) => Constructor<RovingTabindexInterface> & T;
export {};
//# sourceMappingURL=RovingTabindexMixin.d.ts.map