import { OnInit, EventEmitter, ElementRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { DateTimePickerMode } from '../../enums/date-time-picker.enum';
import { DateTimeRange } from '../../models/date-time-range.model';
import * as i0 from "@angular/core";
export declare class DatetimerPickerComponent implements OnInit, ControlValueAccessor {
    private elementRef;
    label: string;
    mode: DateTimePickerMode;
    rangeSelection: boolean;
    minDate: Date | null;
    maxDate: Date | null;
    dateTimeChange: EventEmitter<DateTimeRange | Date>;
    isOpen: boolean;
    selectedDate: Date;
    endDate: Date | null;
    displayValue: string;
    currentMonth: number;
    currentYear: number;
    weekDays: string[];
    monthNames: string[];
    calendarDays: Array<{
        date: Date;
        isCurrentMonth: boolean;
        isToday: boolean;
        isDisabled: boolean;
    }>;
    hours: string;
    minutes: string;
    private onChange;
    private onTouched;
    disabled: boolean;
    get showDatePicker(): boolean;
    get showTimePicker(): boolean;
    constructor(elementRef: ElementRef);
    ngOnInit(): void;
    clickOutside(event: Event): void;
    toggle(): void;
    buildCalendar(): void;
    previousMonth(): void;
    nextMonth(): void;
    selectDate(date: Date): void;
    updateHour(increment: number): void;
    updateMinute(increment: number): void;
    updateTimeOnSelectedDate(): void;
    updateDisplayValue(): void;
    formatDate(date: Date): string;
    isToday(date: Date): boolean;
    isDateDisabled(date: Date): boolean;
    isSelectedDate(date: Date): boolean;
    isEndDate(date: Date): boolean;
    isInRange(date: Date): boolean;
    setYear(year: number): void;
    setMonth(month: number): void;
    writeValue(value: Date | DateTimeRange | null): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    private isDateTimeRange;
    private notifyChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatetimerPickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatetimerPickerComponent, "cfc-datetimer-picker", never, { "label": { "alias": "label"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "rangeSelection": { "alias": "rangeSelection"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; }, { "dateTimeChange": "dateTimeChange"; }, never, never, false, never>;
}
