import type { Config, Section, Direction } from './types'; export declare class SpatialNavigation { private constructor(); private static instance; static getInstance(): SpatialNavigation; private readonly globalConfig; private allFocusableItems; private intersectionObserver; private mutationObserver; private visibleItems; private ready; private pause; private sections; private defaultSectionId; private lastSectionId; private throttleKeyDown; /** ***************** */ /** ***************** */ private focusSection; private focusNext; private setThrottleKeyDown; private onKeyDown; private onFocus; private boundedOnKeyDown; private boundedOnFocus; /** ***************** */ /** ***************** */ /** * Включает навигацию: * - устанавливает секцию по умолчанию, если был передан параметр * - добавляет EventListener'ы на window для работы навигации * - включает IntersectionObserver и MutationObserver, следящие за видимыми элементами на экране * * @param defaultSectionId */ init(defaultSectionId?: string | null): void; /** * Выключает навигацию: * - удаляет все секции * - удаляет все EventListener'ы из window * - удаляет секцию по умолчанию * - удаляет последнюю активную секцию * - выключает IntersectionObserver и MutationObserver, следящие за элементами видимыми на экране */ unInit(): void; /** * Кастомизация глобального конфига SpatialNavigation * * @param config */ customizeGlobalConfig(config: Config): void; /** * Проверяет существует ли секция в spatnav instance. * * @param sectionId * * @returns `true` если секция существует */ has(sectionId: string): boolean; /** * @param sectionId * * @returns Section или undefined если секции с таким id нет */ get(sectionId: string): Section | null; /** * Перезаписывает конфиг секции с помощью Object.assign * * @param sectionId * * @param config */ set(sectionId: string, config?: Partial): void; /** * Добавляет секцию в spatnav instance. После добавления она сразу доступна для навигации. * * @param sectionId * * @param config * * @returns секция */ add(sectionId: string, config?: Partial): void; /** * Удаляет секцию из spatnavInstance. * * @param sectionId * * @returns `true` если секция была удалена */ remove(sectionId: string): boolean; /** * Выключает навигацию в данной секции. * * @param sectionId * * @returns `true` если секция была выключена */ disable(sectionId: string): boolean; /** * Включает навигацию в данной секции. * * @param sectionId * * @returns `true` если секция была включена */ enable(sectionId: string): boolean; /** * Выключает навигацию полностью. */ pauseNavigation(): void; /** * Включает навигацию полностью. */ resumeNavigation(): void; /** * Фокусирует секцию с указанным sectionId или на defaultSection. * * @param sectionId */ focus(sectionId?: string | null): boolean; /** * Перемещает фокус в указанном направлении как будто была нажата кнопка (вверх, вниз итд.) от текущего активного элемента * * @param direction - направление перехода * * @returns - произошёл ли переход */ move(direction: Direction): boolean; /** * Устанавливает секцию по умолчанию * * @param sectionId */ setDefaultSection(sectionId: string): void; /** * Забыть последний элемент в данной секции * * @param sectionId */ forgetLastElementInSection(sectionId: string): void; } //# sourceMappingURL=SpatialNavigation.d.ts.map