/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { CandyDate, CompatibleValue, FunctionProp, SingleValue } from 'ng-zorro-antd/core';
import { NzCalendarI18nInterface } from 'ng-zorro-antd/i18n';
import { Subject } from 'rxjs';
import { DatePickerService } from './date-picker.service';
import { CompatibleDate, DisabledDateFn, DisabledTimeConfig, DisabledTimeFn, PanelMode, PresetRanges, RangePartType, SupportTimeOptions } from './standard-types';
import * as i0 from "@angular/core";
export declare class DateRangePopupComponent implements OnInit, OnChanges, OnDestroy {
    datePickerService: DatePickerService;
    cdr: ChangeDetectorRef;
    isRange: boolean;
    showWeek: boolean;
    locale: NzCalendarI18nInterface;
    format: string;
    placeholder: string | string[];
    disabledDate: DisabledDateFn;
    disabledTime: DisabledTimeFn;
    showToday: boolean;
    showTime: SupportTimeOptions | boolean;
    extraFooter: TemplateRef<void> | string;
    ranges: PresetRanges;
    dateRender: FunctionProp<TemplateRef<Date> | string>;
    popupStyle: object;
    dropdownClassName: string;
    panelMode: PanelMode | PanelMode[];
    defaultPickerValue: CompatibleDate;
    readonly panelModeChange: EventEmitter<"decade" | "year" | "month" | "week" | "date" | "time" | PanelMode[]>;
    readonly calendarChange: EventEmitter<CompatibleValue>;
    readonly resultOk: EventEmitter<void>;
    prefixCls: string;
    endPanelMode: PanelMode | PanelMode[];
    timeOptions: SupportTimeOptions | SupportTimeOptions[] | null;
    selectedValue: SingleValue[];
    hoverValue: SingleValue[];
    destroy$: Subject<unknown>;
    get hasTimePicker(): boolean;
    get hasFooter(): boolean;
    constructor(datePickerService: DatePickerService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onClickOk(): void;
    onClickToday(value: CandyDate): void;
    onDayHover(value: CandyDate): void;
    onPanelModeChange(mode: PanelMode, partType?: RangePartType): void;
    onActiveDateChange(value: CandyDate, partType: RangePartType): void;
    onSelectTime(value: CandyDate, partType?: RangePartType): void;
    changeValueFromSelect(value: CandyDate): void;
    enablePrevNext(direction: 'prev' | 'next', partType?: RangePartType): boolean;
    getPanelMode(panelMode: PanelMode | PanelMode[], partType?: RangePartType): PanelMode;
    getValue(partType?: RangePartType): CandyDate;
    getActiveDate(partType?: RangePartType): CandyDate;
    hasSelectedValue(): boolean;
    disabledStartTime: (value: Date | Date[]) => DisabledTimeConfig;
    disabledEndTime: (value: Date | Date[]) => DisabledTimeConfig;
    isAllowedSelectedValue(): boolean;
    timePickerDisabled(): boolean;
    okDisabled(): boolean;
    getTimeOptions(partType?: RangePartType): SupportTimeOptions | null;
    onClickPresetRange(val: PresetRanges[keyof PresetRanges]): void;
    onPresetRangeMouseLeave(): void;
    onHoverPresetRange(val: PresetRanges[keyof PresetRanges]): void;
    getObjectKeys(obj: object): string[];
    show(partType: RangePartType): boolean;
    private clearHoverValue;
    private buildTimeOptions;
    private overrideTimeOptions;
    private overrideHms;
    static ɵfac: i0.ɵɵFactoryDef<DateRangePopupComponent>;
    static ɵcmp: i0.ɵɵComponentDefWithMeta<DateRangePopupComponent, "date-range-popup", ["dateRangePopup"], { "isRange": "isRange"; "showWeek": "showWeek"; "locale": "locale"; "format": "format"; "placeholder": "placeholder"; "disabledDate": "disabledDate"; "disabledTime": "disabledTime"; "showToday": "showToday"; "showTime": "showTime"; "extraFooter": "extraFooter"; "ranges": "ranges"; "dateRender": "dateRender"; "popupStyle": "popupStyle"; "dropdownClassName": "dropdownClassName"; "panelMode": "panelMode"; "defaultPickerValue": "defaultPickerValue"; }, { "panelModeChange": "panelModeChange"; "calendarChange": "calendarChange"; "resultOk": "resultOk"; }, never>;
}
