import { IAccessibilityService } from '../interfaces/accessibility.service.interfaces';
import { IAccessibilityManagerService } from '../interfaces/accessibility-manager.service.interfaces';
import { DateRange } from '../interfaces/calendar.interfaces';
import { Binding } from '@uplink-protocol/core';
import { CalendarDate } from '../interfaces/calendar.interfaces';
import { IViewStateService } from '../interfaces/view-state.service.interfaces';
/**
 * Implementation of AccessibilityManagerService
 * Handles keyboard navigation, focus management, and accessibility functions
 * by coordinating between AccessibilityService and other services
 */
export declare class AccessibilityManagerService implements IAccessibilityManagerService {
    private _accessibilityService;
    private _viewStateService;
    constructor(_accessibilityService: IAccessibilityService, _viewStateService: IViewStateService);
    /**
     * Handles focus management including view updates and navigation
     * @param direction Direction to move focus
     * @param focusedDate Currently focused date
     * @param selectedDate Selected date as fallback
     * @param currentDate Current displayed date
     * @param calendarDaysBinding Binding for calendar days
     * @param generateCalendarDaysFn Function to generate calendar days
     * @param updateDateFn Function to handle date updates if navigation is needed
     * @returns The new focused date
     */
    manageFocus(direction: 'right' | 'left' | 'up' | 'down' | 'start' | 'end' | 'prevMonth' | 'nextMonth' | 'prevYear' | 'nextYear', focusedDate: Date | null, selectedDate: Date | null, currentDate: Date, calendarDaysBinding: Binding<CalendarDate[]>, generateCalendarDaysFn: () => CalendarDate[], updateDateFn?: (date: Date) => void): Date;
    /**
     * Select the currently focused date
     * @param focusedDate Currently focused date
     * @param selectDateFn Function to select the date
     * @returns Boolean indicating if a selection was made
     */
    selectFocusedDate(focusedDate: Date | null, selectDateFn: (date: Date) => void): boolean;
    /**
     * Get accessible date label for screen readers
     * @param date The date to get a label for
     * @param localeMonthNameFn Optional function to get localized month name
     * @returns Accessible date label string
     */
    getAccessibleDateLabel(date: Date, localeMonthNameFn?: (month: number) => string): string;
    /**
     * Get date state description for screen readers
     * @param date The date to check
     * @param selectedDate Currently selected date
     * @param selectedDateRange Currently selected date range
     * @param isRangeSelection Whether range selection mode is active
     * @param isDateDisabledFn Function to check if date is disabled
     * @param isTodayFn Function to check if date is today
     * @returns State description string
     */
    getDateStateDescription(date: Date, selectedDate: Date | null, selectedDateRange: DateRange, isRangeSelection: boolean, isDateDisabledFn: (date: Date) => boolean, isTodayFn: (date: Date) => boolean): string;
}
