import { OnInit, OnChanges, EventEmitter, SimpleChanges, TemplateRef, OnDestroy, AfterViewInit, NgZone, ElementRef } from '@angular/core';
import { SwiperOptions } from 'swiper/types';
import { ICalendarComponent, IEvent, IMonthView, IMonthViewRow, ITimeSelected, IRange, CalendarMode, IDateFormatter, IMonthViewDisplayEventTemplateContext } from './calendar.interface';
import { CalendarService } from './calendar.service';
import * as i0 from "@angular/core";
export declare class MonthViewComponent implements ICalendarComponent, OnInit, OnDestroy, OnChanges, AfterViewInit {
    private calendarService;
    private zone;
    constructor(calendarService: CalendarService, zone: NgZone);
    private slider;
    swiperElement?: ElementRef;
    monthviewDisplayEventTemplate: TemplateRef<IMonthViewDisplayEventTemplateContext>;
    monthviewInactiveDisplayEventTemplate: TemplateRef<IMonthViewDisplayEventTemplateContext>;
    monthviewEventDetailTemplate: TemplateRef<IMonthViewDisplayEventTemplateContext>;
    formatDay?: string;
    formatDayHeader?: string;
    formatMonthTitle?: string;
    eventSource: IEvent[];
    startingDayMonth: number;
    showEventDetail?: boolean;
    noEventsLabel?: string;
    autoSelect: boolean;
    markDisabled?: (date: Date) => boolean;
    locale: string;
    dateFormatter?: IDateFormatter;
    dir: string;
    lockSwipeToPrev?: boolean;
    lockSwipeToNext?: boolean;
    lockSwipes?: boolean;
    sliderOptions?: SwiperOptions;
    onRangeChanged: EventEmitter<IRange>;
    onEventSelected: EventEmitter<IEvent>;
    onTimeSelected: EventEmitter<ITimeSelected>;
    onTitleChanged: EventEmitter<string>;
    views: IMonthView[];
    currentViewIndex: number;
    selectedDate?: IMonthViewRow;
    range: IRange;
    mode: CalendarMode;
    direction: number;
    private moveOnSelected;
    private inited;
    private currentDateChangedFromParentSubscription?;
    private eventSourceChangedSubscription?;
    private slideChangedSubscription?;
    private slideUpdatedSubscription?;
    private formatDayLabel;
    private formatDayHeaderLabel;
    private formatTitle;
    static getDates(startDate: Date, n: number): Date[];
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    setSwiperInstance(swiper: any): void;
    onSlideChanged(direction: number): void;
    move(direction: number): void;
    createDateObject(date: Date): IMonthViewRow;
    getViewData(startTime: Date): IMonthView;
    getHighlightClass(date: IMonthViewRow): string;
    getRange(currentDate: Date): IRange;
    onDataLoaded(): void;
    refreshView(): void;
    getTitle(): string;
    private compareEvent;
    select(viewDate: IMonthViewRow): void;
    slideView(direction: number): void;
    updateCurrentView(currentViewStartDate: Date, view: IMonthView): void;
    eventSelected(event: IEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MonthViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MonthViewComponent, "monthview", never, { "monthviewDisplayEventTemplate": { "alias": "monthviewDisplayEventTemplate"; "required": false; }; "monthviewInactiveDisplayEventTemplate": { "alias": "monthviewInactiveDisplayEventTemplate"; "required": false; }; "monthviewEventDetailTemplate": { "alias": "monthviewEventDetailTemplate"; "required": false; }; "formatDay": { "alias": "formatDay"; "required": false; }; "formatDayHeader": { "alias": "formatDayHeader"; "required": false; }; "formatMonthTitle": { "alias": "formatMonthTitle"; "required": false; }; "eventSource": { "alias": "eventSource"; "required": false; }; "startingDayMonth": { "alias": "startingDayMonth"; "required": false; }; "showEventDetail": { "alias": "showEventDetail"; "required": false; }; "noEventsLabel": { "alias": "noEventsLabel"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "markDisabled": { "alias": "markDisabled"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "dateFormatter": { "alias": "dateFormatter"; "required": false; }; "dir": { "alias": "dir"; "required": false; }; "lockSwipeToPrev": { "alias": "lockSwipeToPrev"; "required": false; }; "lockSwipeToNext": { "alias": "lockSwipeToNext"; "required": false; }; "lockSwipes": { "alias": "lockSwipes"; "required": false; }; "sliderOptions": { "alias": "sliderOptions"; "required": false; }; }, { "onRangeChanged": "onRangeChanged"; "onEventSelected": "onEventSelected"; "onTimeSelected": "onTimeSelected"; "onTitleChanged": "onTitleChanged"; }, never, never, false, never>;
}
