import { CalendarStateManager } from "./state-manager";
import { IConstraintsService, IAccessibilityService, ICalendarService } from "../interfaces";
/**
 * UtilityCoordinator - Handles utility methods and queries
 */
export declare class UtilityCoordinator {
    private stateManager;
    private constraintsService;
    private accessibilityService;
    private calendarService;
    constructor(stateManager: CalendarStateManager, constraintsService: IConstraintsService, accessibilityService: IAccessibilityService, calendarService: ICalendarService);
    /**
     * Check if a date is disabled
     */
    isDateDisabled(date: Date): boolean;
    /**
     * Check if a date is today
     */
    isToday(date: Date): boolean;
    /**
     * Get week number for a date
     */
    getWeekNumber(date: Date): number;
    /**
     * Get disabled dates
     */
    getDisabledDates(): Date[];
    /**
     * Get disabled days of week
     */
    getDisabledDaysOfWeek(): number[];
    /**
     * Get accessible date label
     */
    getAccessibleDateLabel(date: Date, getMonthName: (month: number) => string): string;
    /**
     * Get date state description
     */
    getDateStateDescription(date: Date, isDateDisabledFn: (date: Date) => boolean, isTodayFn: (date: Date) => boolean): string;
    /**
     * Check if a date is within a date range
     */
    isDateInRange(date: Date, startDate: Date | null, endDate: Date | null): boolean;
    /**
     * Check if two dates are the same day
     */
    isSameDay(date1: Date, date2: Date): boolean;
    /**
     * Check if two dates are in the same month
     */
    isSameMonth(date1: Date, date2: Date): boolean;
    /**
     * Check if two dates are in the same year
     */
    isSameYear(date1: Date, date2: Date): boolean;
    /**
     * Get day of week for a date (0 = Sunday, 1 = Monday, etc.)
     */
    getDayOfWeek(date: Date): number;
    /**
     * Get number of days in a specific month and year
     */
    getDaysInMonth(year: number, month: number): number;
}
