import { CalendarStateManager } from "./state-manager"; import { CalendarControllerBindings } from "../types"; import { CalendarGetters } from "../types/getters.type"; import { IAccessibilityManagerService } from "../interfaces"; /** * FocusCoordinator - Handles focus and keyboard navigation * Manages focus state and keyboard-based navigation for accessibility */ export declare class FocusCoordinator { private stateManager; private accessibilityService; constructor(stateManager: CalendarStateManager, accessibilityService: IAccessibilityManagerService); focusDate(date: Date, bindings: CalendarControllerBindings, updateCurrentDateFn?: (date: Date) => void): void; setFocusedDate(date: Date, bindings: CalendarControllerBindings, updateCurrentDateFn?: (date: Date) => void): void; clearFocusedDate(bindings: CalendarControllerBindings): void; selectFocusedDate(_bindings: CalendarControllerBindings, selectDateFn: (date: Date) => void): void; getAccessibleDateLabel(date: Date): string; getDateStateDescription(date: Date, selectedDate: Date | null, selectedDateRange: { startDate: Date | null; endDate: Date | null; }, isRangeSelection: boolean, isDateDisabledFn: (date: Date) => boolean, isTodayFn: (date: Date) => boolean): string; moveFocusLeft(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusRight(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusUp(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusDown(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusToStartOfWeek(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void; moveFocusToEndOfWeek(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void; moveFocusToStartOfMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void; moveFocusToEndOfMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void; moveFocusToNextMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusToPreviousMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusToNextYear(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; moveFocusToPreviousYear(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void; /** * Get aria label for a date */ getAriaLabel(date: Date): string; /** * Get aria label for a month */ getAriaLabelForMonth(month: number, year: number): string; /** * Get aria label for a year */ getAriaLabelForYear(year: number): string; }