import { NgClass } from '@angular/common';
import { NgZone, OnDestroy, OnInit } from '@angular/core';
import { Subject } from 'rxjs';
import { DokuSelectOptionItem } from '../../select';
import { DokuDatePickerBaseProps } from './date-picker-base-props.component';
import * as i0 from "@angular/core";
interface CalendarItem {
    dates: (DateItem | null)[];
}
interface DateItem {
    day: Date;
    isSelected?: boolean;
    /**
     * Only available when `useDateRange` is true.
     */
    isSelectedRange?: boolean;
    isDisabled?: boolean;
}
export declare class DokuDatePickerBase extends DokuDatePickerBaseProps implements OnInit, OnDestroy {
    protected localeId: string;
    private ngZone;
    private useStrictTime;
    protected readonly classes: NgClass['ngClass'];
    protected calendars: CalendarItem[];
    private get activeCalendar();
    private set activeCalendar(value);
    private _activeCalendar;
    protected get calendarHeaders(): string[];
    protected canNavigateToPreviousMonth: boolean;
    protected canNavigateToNextMonth: boolean;
    protected destroy$: Subject<unknown>;
    constructor(localeId: string, ngZone: NgZone, useStrictTime: boolean);
    protected get monthSelectOptions(): DokuSelectOptionItem[];
    protected get yearSelectOptions(): DokuSelectOptionItem[];
    protected get weekdays(): string[];
    protected get activeMonth(): string;
    protected get activeYear(): string;
    private get isMobileScreen();
    ngOnInit(): void;
    ngOnDestroy(): void;
    navigateTo(date: Date | string): void;
    protected navigateToPreviousMonth(): void;
    protected navigateToNextMonth(): void;
    protected onMonthChange(value: string | string[]): void;
    protected onYearChange(value: string | string[]): void;
    protected onSelectDate(date: DateItem): void;
    protected onDayMouseEnter(date?: DateItem | null): void;
    protected onDayMouseLeave(date?: DateItem | null): void;
    private handleSelectDateRange;
    private generateDates;
    private handleOutsideDays;
    private generateActiveMonthDates;
    private generateNextMonthDates;
    private validateMonthNavigation;
    private handleDateState;
    private generateCalendar;
    private handleStrictTime;
    private handleReturnMinOrMaxDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<DokuDatePickerBase, [null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DokuDatePickerBase, "doku-date-picker-base", ["dokuDatePickerBase"], {}, {}, never, ["[doku-date-picker-footer]"], true>;
}
export {};
