import { OnInit, OnChanges, SimpleChanges, EventEmitter, ComponentRef, ElementRef } from "@angular/core";
import * as moment_ from 'moment';
import { ControlValueAccessor } from "@angular/forms";
import { NpDateRangePickerPopup } from "../components/date-range-picker-popup";
import { DatePickerFooterItem } from "../components/date-picker-footer";
import { NpInput } from "../../input";
import { NpDatePickerService } from "../date-picker.service";
/**
 * Date range picker组件
 */
export declare class NpDateRangePicker implements OnInit, OnChanges, ControlValueAccessor {
    private datePickerService;
    /**标签 */
    label: string;
    /**是否必填，true仅在标签前面添加红色*号， false不加*/
    isRequired: boolean;
    /**展示开始时间占位符 */
    startPlaceholder: string;
    /**展示结束时间占位符 */
    endPlaceholder: string;
    /**校验错误时显示错误信息 */
    errorMessage: string;
    /**是否禁用 */
    isDisabled: boolean;
    /**已选时间 */
    dates: Array<moment_.Moment | string>;
    /**日期时间展示格式，默认只展示日期 */
    format: string;
    /**是否展示时间，默认不展示 */
    isShowTime: boolean;
    /**显示在footer左侧的自定义时间标签数组，如“昨天”等 */
    footerItems: DatePickerFooterItem[];
    onDateRangeChanged: EventEmitter<any>;
    dateRangeWrapper: ElementRef<HTMLElement>;
    dateRangeStartPicker: NpInput;
    dateRangeEndPicker: NpInput;
    daterangePickerPopupRef: ComponentRef<NpDateRangePickerPopup>;
    startDate: moment_.Moment | string;
    endDate: moment_.Moment | string;
    private overlayRef;
    isHover: boolean;
    private emitChange;
    /**日期输入框文本值，每当this.startDate改变时此值会同步改变*/
    sValue: string;
    /**日期输入框文本值，每当this.endDate改变时此值会同步改变*/
    eValue: string;
    constructor(datePickerService: NpDatePickerService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onStartPickerClicked(): void;
    onEndPickerClicked(): void;
    onToggleDatePickerPopup(): void;
    onStartDateBlur(data: {
        value: any;
        event: any;
    }): void;
    onEndDateBlur(data: {
        value: any;
        event: any;
    }): void;
    onClear(): void;
    onMouseenter(): void;
    onMouseleave(): void;
    /**每次this.startDate改变时，这个方法都必须要调用 */
    private syncSValue;
    /**每次this.endDate改变时，这个方法都必须要调用 */
    private syncEValue;
    private closePopup;
    private subscribeNotifyEvents;
    private emitDataAndClosePopup;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
}
