import { CalendarStateManager } from "./state-manager";
import { BindingsCoordinator } from "./bindings-coordinator";
import { NavigationCoordinator } from "./navigation-coordinator";
import { CalendarControllerBindings, CalendarControllerEvents } from "../types";
import { ICalendarStateService, IEventManagerService, ICalendarService } from "../interfaces";
/**
 * SelectionCoordinator - Handles date selection operations
 * Manages single date and range selection logic
 */
export declare class SelectionCoordinator {
    private stateManager;
    private bindingsCoordinator;
    private calendarStateService;
    private navigationCoordinator?;
    constructor(stateManager: CalendarStateManager, bindingsCoordinator: BindingsCoordinator, calendarStateService: ICalendarStateService);
    /**
     * Set navigation coordinator (to avoid circular dependency)
     */
    setNavigationCoordinator(navigationCoordinator: NavigationCoordinator): void;
    /**
     * Select a date
     */
    selectDate(yearOrDate: number | Date, month: number | undefined, day: number | undefined, bindings: CalendarControllerBindings, events: CalendarControllerEvents, getters: any, isDateDisabledFn: (date: Date) => boolean, eventManagerService: IEventManagerService): void;
    /**
     * Set range selection mode
     */
    setRangeSelectionMode(isRange: boolean, bindings: CalendarControllerBindings, getters: any): void;
    /**
     * Clear current selection
     */
    clearSelection(bindings: CalendarControllerBindings, getters: any): void;
    /**
     * Select month (navigate to month view)
     * Delegates to NavigationCoordinator to avoid duplication
     */
    selectMonth(month: number, year: number, bindings: CalendarControllerBindings, events: CalendarControllerEvents, getters: any, calendarService: ICalendarService, eventManagerService: IEventManagerService): void;
    /**
     * Select year (navigate to year view)
     */
    selectYear(year: number, bindings: CalendarControllerBindings, events: CalendarControllerEvents, getters: any, navigationService: any, eventManagerService: IEventManagerService): void;
}
