import { type ReactiveController } from '../stencil/reactive-controller-host'; declare global { interface LmvzComponentMeta { isFocusControllerHost?: true; } } export type DirectionalFocusHost = FocusHostExtensions & { el: HTMLElement; }; type FocusHostExtensions = { initFocus: DirectionalFocusController['initFocus']; }; export declare function isFocusControllerHost(el: HTMLElement): el is HTMLElement & FocusHostExtensions; export type DirectionalFocusReceiver = { resolveFocusableElement(): HTMLElement | undefined; }; export type DirectionalFocusOrientation = 'horizontal' | 'vertical' | 'both'; export type DirectionalFocusControllerConfig = { orientation?: DirectionalFocusOrientation; enableHomeAndEnd?: boolean; manageTabIndex?: boolean; onFocusTargetChange?: (element: HTMLElement) => void; isFocusableElement?: (element: HTMLElement) => boolean; }; export declare class DirectionalFocusController implements ReactiveController { private readonly host; private elements; private currentElement?; private readonly config; constructor(host: DirectionalFocusHost, config?: DirectionalFocusControllerConfig); hostConnected(): void; hostDisconnected(): void; updateElements(elements: Element[]): void; setCurrentElement(element: Element | undefined | null): void; initFocus(): Promise; private handleKeydown; private getFocusIntent; private getManagedActiveElement; private getTargetElement; private findFocusableFromIndex; private syncManagedFocusTarget; private selectManagedElement; private updateTabIndexes; private applyFocusTarget; private canMoveFocusTo; } export type ListKeyboardNavigationHost = DirectionalFocusHost; export type ListKeyboardNavigationControllerConfig = DirectionalFocusControllerConfig; export { DirectionalFocusController as ListKeyboardNavigationController };