import { EventEmitter, OnInit, OnChanges, SimpleChanges, ElementRef, OnDestroy } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Hours, Seconds, Minutes, Day, Month, Year, DateConfig, Time, DatePickerModel } from './date-utils';
export declare class DateComponent implements ControlValueAccessor, OnInit, OnChanges, OnDestroy {
    hoursListWrap: ElementRef<HTMLDivElement>;
    minutesListWrap: ElementRef<HTMLDivElement>;
    secondsListWrap: ElementRef<HTMLDivElement>;
    uiChange: EventEmitter<string | number>;
    size: string;
    placeholder: string;
    forId: string;
    name: string;
    arrowIconClassName: string;
    displayFormat: string;
    format: string;
    value: string | number | Date;
    maxDate: string | number | Date;
    minDate: string | number | Date;
    minTime: string;
    maxTime: string;
    disabled: boolean;
    readonly: boolean;
    get time(): string;
    config: DateConfig;
    focus: boolean;
    open: boolean;
    minDateInstance: Date;
    maxDateInstance: Date;
    minTimeInstance: Time;
    maxTimeInstance: Time;
    systemDate: Date;
    pickerDate: Date;
    startYearIndex: number;
    years: Year[];
    months: Month[];
    dayGroups: Day[][];
    hours: Hours[];
    minutes: Minutes[];
    seconds: Seconds[];
    displayValue: any;
    oldModel: DatePickerModel;
    model: DatePickerModel;
    private onChange;
    private onTouched;
    private days;
    private animateId;
    constructor(arrowIcon: string);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    setupPicker(): void;
    reset(): void;
    toggle(): void;
    onEscape(): void;
    updateView(): void;
    switchModel(newModel: DatePickerModel): void;
    check(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    toPreviousYear(): void;
    toNextYear(): void;
    toPrevMonth(): void;
    toNextMonth(): void;
    updateYearsByStart(year: number): void;
    updatePickerByYear(year: number): void;
    updatePickerByMonth(month: number): void;
    updatePickerByDay(day: Day): void;
    updatePickerByHours(hours: number): void;
    updatePickerByMinutes(minutes: number): void;
    updatePickerBySeconds(seconds: number): void;
    private update;
    private timePickerScrollToCenter;
    private updateSecondsList;
    private updateMinutesList;
    private updateHoursList;
    private updateDayList;
    private updateMonthList;
    private updateYearList;
    private canSelectSeconds;
    private canSelectMinutes;
    private canSelectHours;
    private canSelectDay;
    private canSelectMonth;
    private canSelectYear;
    private getNewDateByTime;
    private insurePickerDateBetweenMinAndMax;
}
