import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { DateAdapter, NtDateFormats } from '@ng-tangram/components/core';
import { NtDatePickerMonthComponent } from './month.component';
import { NtDatePickerMultiYearComponent } from './multi-year.component';
import { NtDatePickerYearComponent } from './year.component';
export declare type NtDatePickerViewType = 'month' | 'year' | 'multi-year';
export declare class NtDatePickerCalendarComponent<D> implements AfterContentInit, OnChanges, OnDestroy {
    private _changeDetectorRef;
    private _dateAdapter;
    private _dateFormats;
    _viewType: NtDatePickerViewType;
    _currentView: NtDatePickerViewType;
    private _startAt;
    get startAt(): D | null;
    set startAt(value: D | null);
    private _selected;
    get selected(): D | null;
    set selected(value: D | null);
    private _minDate;
    get minDate(): D | null;
    set minDate(value: D | null);
    private _maxDate;
    get maxDate(): D | null;
    set maxDate(value: D | null);
    dateFilter: (date: D) => boolean;
    readonly selectedChange: EventEmitter<D>;
    readonly yearSelected: EventEmitter<D>;
    readonly monthSelected: EventEmitter<D>;
    monthView: NtDatePickerMonthComponent<D>;
    yearView: NtDatePickerYearComponent<D>;
    multiYearView: NtDatePickerMultiYearComponent<D>;
    private _clampedActiveDate;
    get _activeDate(): D;
    set _activeDate(value: D);
    get _monthLabel(): string;
    get _yearLabel(): string;
    get _multiYearLabel(): string;
    constructor(_changeDetectorRef: ChangeDetectorRef, _dateAdapter: DateAdapter<D>, _dateFormats: NtDateFormats);
    ngAfterContentInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    prevMonth(): void;
    nextMonth(): void;
    prevYear(): void;
    nextYear(): void;
    prevYearArray(): void;
    nextYearArray(): void;
    _init(): void;
    _dateSelected(date: D): void;
    _yearSelectedInMultiYearView(normalizedYear: D): void;
    _monthSelectedInYearView(normalizedMonth: D): void;
    _goToDateInView(date: D, view: 'month' | 'year' | 'multi-year'): void;
    private _getValidDateOrNull;
}
