/**
 * @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, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NzNoAnimationDirective } from 'ng-zorro-antd/core/no-animation';
import { CandyDate } from 'ng-zorro-antd/core/time';
import { BooleanInput, FunctionProp, OnChangeType, OnTouchedType } from 'ng-zorro-antd/core/types';
import { DateHelperService, NzDatePickerI18nInterface, NzI18nService } from 'ng-zorro-antd/i18n';
import { Subject } from 'rxjs';
import { DatePickerService } from './date-picker.service';
import { NzPickerComponent } from './picker.component';
import { CompatibleDate, DisabledTimeFn, PanelMode, PresetRanges, SupportTimeOptions } from './standard-types';
/**
 * The base picker for all common APIs
 */
export declare class NzDatePickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    datePickerService: DatePickerService;
    protected i18n: NzI18nService;
    protected cdr: ChangeDetectorRef;
    private renderer;
    private elementRef;
    protected dateHelper: DateHelperService;
    noAnimation?: NzNoAnimationDirective | undefined;
    static ngAcceptInputType_nzAllowClear: BooleanInput;
    static ngAcceptInputType_nzAutoFocus: BooleanInput;
    static ngAcceptInputType_nzDisabled: BooleanInput;
    static ngAcceptInputType_nzOpen: BooleanInput;
    static ngAcceptInputType_nzShowToday: BooleanInput;
    static ngAcceptInputType_nzShowTime: BooleanInput;
    isRange: boolean;
    showWeek: boolean;
    focused: boolean;
    extraFooter: TemplateRef<void> | string;
    protected destroyed$: Subject<void>;
    protected isCustomPlaceHolder: boolean;
    private showTime;
    nzAllowClear: boolean;
    nzAutoFocus: boolean;
    nzDisabled: boolean;
    nzOpen: boolean;
    /**
     * @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
     */
    nzClassName: string;
    nzDisabledDate: (d: Date) => boolean;
    nzLocale: NzDatePickerI18nInterface;
    nzPlaceHolder: string | string[];
    nzPopupStyle: object;
    nzDropdownClassName: string;
    nzSize: 'large' | 'small';
    /**
     * @deprecated 10.0.0. This is deprecated and going to be removed in 10.0.0.
     */
    nzStyle: object;
    nzFormat: string;
    nzDateRender: FunctionProp<TemplateRef<Date> | string>;
    nzDisabledTime: DisabledTimeFn;
    nzRenderExtraFooter: FunctionProp<TemplateRef<void> | string>;
    nzShowToday: boolean;
    nzMode: PanelMode | PanelMode[];
    nzRanges: PresetRanges;
    nzDefaultPickerValue: CompatibleDate | null;
    nzSeparator: string;
    readonly nzOnPanelChange: EventEmitter<"decade" | "year" | "month" | "week" | "date" | "time" | PanelMode[]>;
    readonly nzOnCalendarChange: EventEmitter<(Date | null)[]>;
    readonly nzOnOk: EventEmitter<Date | Date[] | null>;
    readonly nzOnOpenChange: EventEmitter<boolean>;
    protected picker: NzPickerComponent;
    get nzShowTime(): SupportTimeOptions | boolean;
    set nzShowTime(value: SupportTimeOptions | boolean);
    get realOpenState(): boolean;
    constructor(datePickerService: DatePickerService, i18n: NzI18nService, cdr: ChangeDetectorRef, renderer: Renderer2, elementRef: ElementRef, dateHelper: DateHelperService, noAnimation?: NzNoAnimationDirective | undefined);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    setPanelMode(): void;
    /**
     * Triggered when overlayOpen changes (different with realOpenState)
     * @param open The overlayOpen in picker component
     */
    onOpenChange(open: boolean): void;
    onChangeFn: OnChangeType;
    onTouchedFn: OnTouchedType;
    writeValue(value: CompatibleDate): void;
    registerOnChange(fn: OnChangeType): void;
    registerOnTouched(fn: OnTouchedType): void;
    private setLocale;
    private setDefaultPlaceHolder;
    private setValue;
    get realShowToday(): boolean;
    onFocusChange(value: boolean): void;
    onPanelModeChange(panelMode: PanelMode | PanelMode[]): void;
    onCalendarChange(value: CandyDate[]): void;
    onResultOk(): void;
}
