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;
}
