import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { CalendarCell, OwlCalendarBodyComponent } from './calendar-body.component';
import { DateTimeAdapter } from './adapter/date-time-adapter.class';
import { OwlDateTimeFormats } from './adapter/date-time-format.class';
import { SelectMode } from './date-time.class';
export declare class OwlMonthViewComponent<T> implements OnInit, AfterContentInit, OnDestroy {
    private cdRef;
    private dateTimeAdapter;
    private dateTimeFormats;
    firstDayOfWeek: number;
    selectMode: SelectMode;
    private _selected;
    selected: T | null;
    private _selecteds;
    selecteds: T[];
    private _pickerMoment;
    pickerMoment: T;
    private _dateFilter;
    dateFilter: (date: T) => boolean;
    private _minDate;
    minDate: T | null;
    private _maxDate;
    maxDate: T | null;
    private _weekdays;
    readonly weekdays: {
        long: string;
        short: string;
        narrow: string;
    }[];
    private _days;
    readonly days: CalendarCell[][];
    readonly activeCell: number;
    readonly isInSingleMode: boolean;
    readonly isInRangeMode: boolean;
    private firstDateOfMonth;
    private localeSub;
    private initiated;
    todayDate: number | null;
    selectedDates: number[];
    firstRowOffset: number;
    readonly selectedChange: EventEmitter<T>;
    readonly userSelection: EventEmitter<void>;
    readonly pickerMomentChange: EventEmitter<T>;
    calendarBodyElm: OwlCalendarBodyComponent;
    readonly owlDTCalendarView: boolean;
    constructor(cdRef: ChangeDetectorRef, dateTimeAdapter: DateTimeAdapter<T>, dateTimeFormats: OwlDateTimeFormats);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    dateSelected(date: number): void;
    handleCalendarKeydown(event: KeyboardEvent): void;
    private generateWeekDays();
    private generateCalendar();
    private createDateCell(date, daysDiff);
    private isDateEnabled(date);
    private getValidDate(obj);
    isSameMonth(dateLeft: T, dateRight: T): boolean;
    private setSelectedDates();
    private focusActiveCell();
}
