import { ControllerMetadata } from "@uplink-protocol/core/dist/uplink/interfaces/metadata/controller-metadata.interface";
import { CalendarOptions, ICalendarService, IDateFormattingService, IDateSelectionService, IViewStateService, IEventManagerService, INavigationService, IConstraintsService, ICalendarGeneratorService, IConfigurationService, ILocalizationService, IAccessibilityService, IAccessibilityManagerService, ICalendarStateService } from "../interfaces";
import { CalendarStateManager } from "./state-manager";
import { CalendarControllerBindings, CalendarControllerEvents } from "../types";
/**
 * ControllerInitializer - Handles all controller initialization logic
 * Responsible for service instantiation, configuration, metadata setup, and initial state
 */
export declare class ControllerInitializer {
    /**
     * Initialize all services required by the controller
     */
    initializeServices(): {
        calendarService: ICalendarService;
        dateFormattingService: IDateFormattingService;
        dateSelectionService: IDateSelectionService;
        viewStateService: IViewStateService;
        eventManagerService: IEventManagerService;
        navigationService: INavigationService;
        constraintsService: IConstraintsService;
        calendarGeneratorService: ICalendarGeneratorService;
        localizationService: ILocalizationService;
        configurationService: IConfigurationService;
        accessibilityService: IAccessibilityService;
        accessibilityManagerService: IAccessibilityManagerService;
        calendarStateService: ICalendarStateService;
    };
    /**
     * Apply configuration options to state manager and services
     */
    applyConfiguration(options: CalendarOptions, stateManager: CalendarStateManager, services: {
        calendarService: ICalendarService;
        dateFormattingService: IDateFormattingService;
        localizationService: ILocalizationService;
        configurationService: IConfigurationService;
        constraintsService: IConstraintsService;
    }): {
        localizationService: ILocalizationService;
        configurationService: IConfigurationService;
        locale: string;
    };
    /**
     * Initialize bindings
     */
    initializeBindings(stateManager: CalendarStateManager, viewStateService: IViewStateService, generateCalendarDaysFn: () => any[], generateCalendarMonthsFn: () => any[], generateCalendarYearsFn: () => any[]): CalendarControllerBindings;
    /**
     * Initialize events
     */
    initializeEvents(eventManagerService: IEventManagerService): CalendarControllerEvents;
    /**
     * Initialize metadata for the controller
     */
    initializeMetadata(controller: any): void;
    /**
     * Setup bindings for the controller (placeholder - actual binding initialization handled by bindingsCoordinator)
     */
    setupBindings(_controller: any): void;
    /**
     * Setup methods for the controller (placeholder - methods are already defined in controller class)
     */
    setupMethods(_controller: any): void;
    /**
     * Create controller metadata for agent assistance
     */
    createMetadata(): ControllerMetadata;
}
