import { MLinkMode } from '../../../link/link';
import { DayState, MonthState, YearState } from '../../calendar-state/state/calendar-state';
import { MAbstractCalendarRenderer } from './../abstract-calendar-renderer';
import './base-calendar.scss';
export declare enum MBaseCalendarView {
    DAYS = "days",
    YEARS_MONTHS = "years-months"
}
export declare enum MBaseCalendarType {
    FULL_DATE = "full-date",
    YEARS_MONTHS = "years-months"
}
export default class MBaseCalendar extends MAbstractCalendarRenderer {
    readonly initialView: MBaseCalendarView;
    readonly showMonthBeforeAfter: boolean;
    readonly monthsNames: string[];
    readonly monthsNamesLong: string[];
    readonly daysNames: string[];
    readonly type: MBaseCalendarType;
    readonly visible: boolean;
    mBaseCalendarView: typeof MBaseCalendarView;
    previousMonthLabel: string;
    nextMonthLabel: string;
    previousYearLabel: string;
    nextYearLabel: string;
    id: string;
    $refs: {
        body: HTMLElement;
        yearsMonthsView: HTMLElement;
    };
    modeLinkCurrentMonthAndYear: MLinkMode;
    animReady: boolean;
    private internalCurrentView;
    visibleChanged(visible: boolean): void;
    protected created(): void;
    onToogleView(): void;
    onYearMonthSelect(year: YearState, month: MonthState): void;
    onYearMonthSelectKeyup($event: KeyboardEvent, year: YearState, month: MonthState): void;
    onYearNext(event: Event): void;
    onYearPrevious(event: Event): void;
    onMonthNext(event: Event): void;
    onMonthPrevious(event: Event): void;
    onDaySelect(day: DayState): void;
    onDayMouseEnter(day: DayState): void;
    onKeyUp($event: KeyboardEvent, day: DayState): void;
    onDayMouseLeave(day: DayState): void;
    isDateInFuture(day: DayState): boolean;
    isInsideRange(day: DayState): boolean;
    isSelectionStart(day: DayState): boolean;
    isSelectionEnd(day: DayState): boolean;
    hideDay(day: DayState): boolean;
    buildRef(refPrefix: MBaseCalendarView, year: number, month: number, day?: number): string;
    monthIndexToShortName(index: number): string;
    scrollToCurrentYear(): void;
    set currentView(view: MBaseCalendarView);
    get currentView(): MBaseCalendarView;
    get isTypeYearsMonths(): boolean;
    get currentYear(): number;
    get currentMonth(): number;
    get currentMonthName(): string;
    get weekdaysLabels(): string[];
    get years(): {};
    get yearsMonths(): {};
    get months(): {};
    get days(): {};
    get isYearsMonthsView(): boolean;
    get isDaysView(): boolean;
    get isMinYear(): boolean;
    get isMaxYear(): boolean;
    get isMinMonth(): boolean;
    get isMaxMonth(): boolean;
    get isMaxRow(): boolean;
    get isButtonToogleViewDisabled(): boolean;
    private padString;
}
//# sourceMappingURL=base-calendar.d.ts.map