import { EventEmitter, OnInit, OnChanges, SimpleChanges, ElementRef, AfterViewInit, ChangeDetectorRef, OnDestroy, TemplateRef, QueryList } from '@angular/core';
import { DateAdapter, GregorianDateAdapter, JalaliDateAdapter } from '../date-adapter';
import { CustomLabels, DateRange, Lang_Locale, YearRange } from '../utils/models';
import { DestroyService, QeydarDatePickerService } from '../date-picker.service';
import { CalendarType, DatepickerMode } from '../utils/types';
import { TimePickerComponent } from '../time-picker/time-picker.component';
import { CustomTemplate } from '../utils/template.directive';
import * as i0 from "@angular/core";
export declare class DatePickerPopupComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
    el: ElementRef;
    cdr: ChangeDetectorRef;
    dpService: QeydarDatePickerService;
    jalali: JalaliDateAdapter;
    gregorian: GregorianDateAdapter;
    destroy$: DestroyService;
    rtl: boolean;
    selectedDate: Date | null;
    selectedStartDate: Date | null;
    selectedEndDate: Date | null;
    mode: DatepickerMode;
    isRange: boolean;
    customLabels: Array<CustomLabels>;
    calendarType: CalendarType;
    minDate: Date | null;
    maxDate: Date | null;
    cssClass: string;
    footerDescription: string;
    activeInput: 'start' | 'end' | '';
    showSidebar: boolean;
    showToday: boolean;
    showTimePicker: boolean;
    timeDisplayFormat: string;
    dateFormat: string;
    disabledDates: Array<Date | string>;
    disabledDatesFilter: (date: Date) => boolean;
    disabledTimesFilter: (date: Date) => boolean;
    templates: QueryList<CustomTemplate>;
    dateSelected: EventEmitter<Date>;
    dateRangeSelected: EventEmitter<DateRange>;
    closePicker: EventEmitter<void>;
    clickInside: EventEmitter<boolean>;
    itemSelector: ElementRef;
    timePicker: TimePickerComponent;
    dateAdapter: DateAdapter<Date>;
    weekDays: string[];
    periods: Array<CustomLabels>;
    days: Date[];
    currentDate: Date;
    selectedPeriod: any;
    tempEndDate: Date | null;
    monthListNum: number[];
    yearList: number[];
    yearRanges: Array<YearRange>;
    viewMode: 'days' | 'months' | 'years';
    lang: Lang_Locale;
    timeoutId: any;
    dayTemplate: TemplateRef<any>;
    monthTemplate: TemplateRef<any>;
    quarterTemplate: TemplateRef<any>;
    yearTemplate: TemplateRef<any>;
    get getDate(): Date;
    constructor(el: ElementRef, cdr: ChangeDetectorRef, dpService: QeydarDatePickerService, jalali: JalaliDateAdapter, gregorian: GregorianDateAdapter, destroy$: DestroyService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    initializeComponent(): void;
    initLabels(): void;
    generateDefaultPeriods(today: Date): void;
    setDateAdapter(): void;
    generateCalendar(): void;
    setViewMode(): void;
    showMonthSelector(): void;
    showYearSelector(): void;
    onTimeChange(time: string | Date): void;
    updateSingleDateTime(timeDate: Date): void;
    updateRangeDateTime(timeDate: Date): void;
    private applyTimeToDate;
    setTimePickerDate(date?: Date): void;
    selectDate(date: Date): void;
    handleRangeSelection(date: Date): void;
    handleSingleSelection(date: Date): void;
    selectMonth(month: number, closeAfterSelection?: boolean): void;
    selectYear(year: number, sideSelector?: boolean): void;
    goPrev(): void;
    goNext(): void;
    prevMonth(): void;
    nextMonth(): void;
    isSelected(date: Date): boolean;
    isRangeStart(date: Date): boolean;
    isRangeEnd(date: Date): boolean;
    isInRange(date: Date): boolean;
    isToday(date: Date): boolean;
    isActiveMonth(month: number): boolean;
    isActiveYear(year: number): boolean;
    isActiveYearRange(startYear: number): boolean;
    isDateDisabled(date: Date): boolean;
    isMonthDisabled(month: number): boolean;
    isYearDisabled(year: number): boolean;
    isYearRangeDisabled(yearRange: YearRange): boolean;
    isPrevMonthDisabled(): boolean;
    isNextMonthDisabled(): boolean;
    parseDisabledDates(): Date[];
    onMouseEnter(date: Date, event: Event): void;
    onClickInside(): void;
    getMonthName(month: number): string;
    getCurrentMonthName(): string;
    getCurrentYear(): number;
    getWeekDays(): string[];
    isSameMonth(date1: Date, date2: Date): boolean;
    closeDatePicker(): void;
    generateYearRanges(length?: number): void;
    generateYearList(length?: number): void;
    selectYearRange(startYear: number): void;
    isActivePeriod(period: CustomLabels): boolean;
    selectPeriod(period: CustomLabels): void;
    onTodayClick(): void;
    onOkClick(): void;
    scrollToSelectedItem(id?: number | null): void;
    determineScrollItemId(id: number | null): number | null;
    handleChanges(changes: SimpleChanges): void;
    setInitialDate(): void;
    determineInitialDate(): Date;
    adjustCurrentDateToValidRange(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerPopupComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerPopupComponent, "qeydar-date-picker-popup", never, { "rtl": "rtl"; "selectedDate": "selectedDate"; "selectedStartDate": "selectedStartDate"; "selectedEndDate": "selectedEndDate"; "mode": "mode"; "isRange": "isRange"; "customLabels": "customLabels"; "calendarType": "calendarType"; "minDate": "minDate"; "maxDate": "maxDate"; "cssClass": "cssClass"; "footerDescription": "footerDescription"; "activeInput": "activeInput"; "showSidebar": "showSidebar"; "showToday": "showToday"; "showTimePicker": "showTimePicker"; "timeDisplayFormat": "timeDisplayFormat"; "dateFormat": "dateFormat"; "disabledDates": "disabledDates"; "disabledDatesFilter": "disabledDatesFilter"; "disabledTimesFilter": "disabledTimesFilter"; "templates": "templates"; }, { "dateSelected": "dateSelected"; "dateRangeSelected": "dateRangeSelected"; "closePicker": "closePicker"; "clickInside": "clickInside"; }, never, never, true>;
}
