import { DomScope } from "./useFocusScope"; export declare const VirtualFocusCssClass = "o-ui-focus"; export declare class ElementIterator { private elements; private index; constructor(elements: T[], { from }?: { from?: number; }); next(): T; previous(): T; reset({ from }?: { from?: number; }): void; get currentIndex(): number; } export interface FocusManagerOptions { isVirtual?: boolean; keyProp?: string; onFocus?: (activeElement: HTMLElement, options: Omit) => void; } export interface FocusOptions { onFocus?: (activeElement: HTMLElement, options: Omit) => void; onNotFound?: (options: Omit) => void; canFocus?: (element: HTMLElement) => boolean; } export declare class FocusManager { private scope; private isVirtual; private keyProp; private onFocus; constructor(scope: DomScope, { isVirtual, keyProp, onFocus }?: FocusManagerOptions); get elements(): HTMLElement[]; private focusElement; focusFirst({ canFocus, ...options }?: FocusOptions): HTMLElement; focusLast({ canFocus, ...options }?: FocusOptions): HTMLElement; focusNext({ canFocus, ...options }?: FocusOptions): HTMLElement; focusPrevious({ canFocus, ...options }?: FocusOptions): HTMLElement; focusKey(key: string, options?: FocusOptions): HTMLElement; focusTarget(target: string, options?: FocusOptions): HTMLElement; search(query: string, options?: FocusOptions): HTMLElement; isInScope(element: HTMLElement): boolean; getActiveElement(): Element; } export declare function useFocusManager(scope: DomScope, { isVirtual, keyProp, onFocus }?: FocusManagerOptions): FocusManager;