import { OnInit, SimpleChanges, EventEmitter, ElementRef } from "@angular/core";
import * as moment_ from 'moment';
import { ArrowType, NpDatePickerHeader } from "./date-picker-header";
import { DayDataPerMonth, MonthData, YearData, NpDatePickerService } from "../date-picker.service";
import { DatePickerFooterItem, NpDatePickerFooter } from "./date-picker-footer";
import { NpTimePickerPanel } from "./time-picker-panel";
/**
 * Date picker popup组件
 */
export declare class NpDatePickerPopup implements OnInit {
    private datePickerService;
    elementRef: ElementRef;
    datePickerType: DatePickerType;
    isShowTime: boolean;
    date: moment_.Moment;
    onDayClicked: EventEmitter<DayDataPerMonth>;
    onDayMouseover: EventEmitter<DayDataPerMonth>;
    onMonthClicked: EventEmitter<MonthData>;
    onYearClicked: EventEmitter<YearData>;
    onTimeClicked: EventEmitter<string>;
    onConfirmClicked: EventEmitter<string>;
    onItemLabelClicked: EventEmitter<DatePickerFooterItem>;
    footerItems: DatePickerFooterItem[];
    confirmButtonText: string;
    datePickerHeader: NpDatePickerHeader;
    datePickerFooter: NpDatePickerFooter;
    timePickerPanel: NpTimePickerPanel;
    dayLabel: ElementRef<HTMLElement>;
    selectedDate: moment_.Moment;
    isShowDaysPanel: boolean;
    isShowMonthsPanel: boolean;
    isShowYearsPanel: boolean;
    days: Array<DayDataPerMonth>;
    months: Array<MonthData>;
    years: Array<YearData>;
    nowDay: moment_.Moment;
    /**传入到时间面板的当前时间，格式为‘HH:mm:ss’ */
    time: string;
    constructor(datePickerService: NpDatePickerService, elementRef: ElementRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onTimeLabelClicked(time: string): void;
    onConfirmButtonClicked(time: string): void;
    onFooterItemLabelClicked(item: DatePickerFooterItem): void;
    onDayLabelClicked(day: DayDataPerMonth): void;
    private preDay;
    onDayLabelMouseover(day: DayDataPerMonth): void;
    onMonthLabelClicked(month: MonthData): void;
    onYearLabelClicked(year: YearData): void;
    onYearInHeaderClicked(data: {
        date: moment_.Moment;
        year: string;
        ranges: Array<number>;
    }): void;
    onMonthInHeaderClicked(): void;
    onArrowClicked(data: {
        arrowType: ArrowType;
        date: moment_.Moment;
    }): void;
    buildPanel(date?: moment_.Moment, selectedDate?: moment_.Moment): void;
    buildPanelForRangePicker(hoverDate: moment_.Moment, dates?: Array<moment_.Moment>): void;
    private initMoment;
    private initTimePicker;
    private showPanel;
}
export declare type DatePickerType = 'date-picker' | 'datetime-picker' | 'year-picker' | 'month-picker' | 'date-range-picker';
