import { EventEmitter } from "@uplink-protocol/core";
import { DateRange, YearRange } from "../interfaces/calendar.interfaces";
import { IEventManagerService } from "../interfaces/event-manager.service.interfaces";
/**
 * Implementation of EventManagerService
 * Responsible for managing and emitting calendar events
 */
export declare class EventManagerService implements IEventManagerService {
    /**
     * Initialize event emitters
     */
    initializeEvents(): {
        dateSelected: EventEmitter<Date>;
        dateRangeSelected: EventEmitter<DateRange>;
        monthChanged: EventEmitter<number>;
        yearChanged: EventEmitter<number>;
        viewChanged: EventEmitter<{
            month: number;
            year: number;
        }>;
        yearRangeChanged: EventEmitter<YearRange>;
    };
    /**
     * Emit date selected event
     */
    emitDateSelected(emitter: EventEmitter<Date>, date: Date): void;
    /**
     * Emit date range selected event
     */
    emitDateRangeSelected(emitter: EventEmitter<DateRange>, range: DateRange): void;
    /**
     * Emit month changed event
     */
    emitMonthChanged(emitter: EventEmitter<number>, month: number): void;
    /**
     * Emit year changed event
     */
    emitYearChanged(emitter: EventEmitter<number>, year: number): void;
    /**
     * Emit view changed event
     */ emitViewChanged(emitter: EventEmitter<{
        month: number;
        year: number;
    }>, view: {
        month: number;
        year: number;
    }): void;
    /**
     * Emit year range changed event
     */
    emitYearRangeChanged(emitter: EventEmitter<YearRange>, range: YearRange): void;
}
