import { AfterViewInit } from '@angular/core';
import { Observable } from 'rxjs';
import { CalendarVirtualScrollStrategy } from '../../declarations/classes/calendar-virtual-scroll-strategy.class';
import { DayOfWeek } from '../../declarations/enums/day-of-week.enum';
import { MonthIndex } from '../../declarations/enums/month-index.enum';
import { CalendarMonth } from '../../declarations/interfaces/calendar-month.interface';
import { CalendarConfigService } from '../../services/calendar-config.service';
import { CalendarManipulatorService } from '../../services/calendar-manipulator.service';
import { CalendarStateService } from '../../services/calendar-state.service';
import { CalendarTranslationService } from '../../services/calendar-translation.service';
import * as i0 from "@angular/core";
export declare function calendarVirtualScrollStrategyFactory({ virtualScrollConfig, }: CalendarConfigService): CalendarVirtualScrollStrategy;
export declare class CalendarScrollerComponent implements AfterViewInit {
    private readonly calendarConfigService;
    private readonly calendarTranslationService;
    private readonly calendarManipulatorService;
    private readonly calendarStateService;
    private readonly virtualScrollViewport;
    readonly calendarMonths: CalendarMonth[];
    readonly monthNameByIndex$: Observable<Record<MonthIndex, string>>;
    readonly selectedDates$: Observable<Date[]>;
    readonly startWeekday: DayOfWeek;
    constructor(calendarConfigService: CalendarConfigService, calendarTranslationService: CalendarTranslationService, calendarManipulatorService: CalendarManipulatorService, calendarStateService: CalendarStateService);
    ngAfterViewInit(): void;
    addSelectedDate(date: Date): void;
    private getCalendarMonthByMonthGlobalIndex;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarScrollerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CalendarScrollerComponent, "pupa-calendar-scroller", never, {}, {}, never, never, false>;
}
