/**
 * @license
 * Copyright Endlessjs. All Rights Reserved.
 * Licensed under the MIT License. See License.txt in the project root for license information.
 */
import { EventEmitter, OnInit, Type } from '@angular/core';
import { ElCalendarCell, ElCalendarSize, ElCalendarViewMode } from '../calendar-kit/model';
import { ElDateService } from '../calendar-kit/services/date.service';
/**
 * The basis for calendar and range calendar components.
 * Encapsulates common behavior - store calendar state and perform navigation
 * between pickers.
 * */
export declare class ElBaseCalendarComponent<D, T> implements OnInit {
    protected dateService: ElDateService<D>;
    /**
     * Defines if we should render previous and next months
     * in the current month view.
     * */
    boundingMonth: boolean;
    /**
     * Defines active view for calendar.
     * */
    activeViewMode: ElCalendarViewMode;
    /**
     * Minimum available date for selection.
     * */
    min: D;
    /**
     * Maximum available date for selection.
     * */
    max: D;
    /**
     * Predicate that decides which cells will be disabled.
     * */
    filter: (D: any) => boolean;
    /**
     * Custom day cell component. Have to implement `ElCalendarCell` interface.
     * */
    dayCellComponent: Type<ElCalendarCell<D, T>>;
    /**
     * Custom month cell component. Have to implement `ElCalendarCell` interface.
     * */
    monthCellComponent: Type<ElCalendarCell<D, T>>;
    /**
     * Custom year cell component. Have to implement `ElCalendarCell` interface.
     * */
    yearCellComponent: Type<ElCalendarCell<D, T>>;
    /**
     * Size of the calendar and entire components.
     * Can be 'medium' which is default or 'large'.
     * */
    size: ElCalendarSize;
    visibleDate: D;
    /**
     * Determines should we show calendars header or not.
     * */
    showHeader: boolean;
    /**
     * Value which will be rendered as selected.
     * */
    date: T;
    /**
     * Determines should we show week numbers column.
     * False by default.
     * */
    showWeekNumber: boolean;
    protected _showWeekNumber: boolean;
    /**
     * Sets symbol used as a header for week numbers column
     * */
    weekNumberSymbol: string;
    /**
     * Emits date when selected.
     * */
    dateChange: EventEmitter<T>;
    constructor(dateService: ElDateService<D>);
    ngOnInit(): void;
    readonly medium: boolean;
    readonly large: boolean;
    ViewMode: typeof ElCalendarViewMode;
    setViewMode(viewMode: ElCalendarViewMode): void;
    setVisibleDate(visibleDate: D): void;
    prevMonth(): void;
    nextMonth(): void;
    prevYears(): void;
    nextYears(): void;
    navigateToday(): void;
    private changeVisibleMonth;
    private changeVisibleYear;
}
