/**
 * @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 { ControlValueAccessor } from '@angular/forms';
import { CandyDate, FunctionProp, NzNoAnimationDirective } from 'ng-zorro-antd/core';
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';
import * as i0 from "@angular/core";
/**
 * The base picker for all common APIs
 */
export declare abstract class AbstractPickerComponent implements OnInit, OnChanges, OnDestroy, ControlValueAccessor {
    datePickerService: DatePickerService;
    protected i18n: NzI18nService;
    protected cdr: ChangeDetectorRef;
    protected dateHelper: DateHelperService;
    noAnimation?: NzNoAnimationDirective | undefined;
    isRange: boolean;
    showWeek: boolean;
    focused: boolean;
    extraFooter: TemplateRef<void> | string;
    hostClassMap: {};
    protected destroyed$: Subject<void>;
    protected isCustomPlaceHolder: boolean;
    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;
    nzShowTime: SupportTimeOptions | boolean;
    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 realOpenState(): boolean;
    updateHostClass(): void;
    constructor(datePickerService: DatePickerService, i18n: NzI18nService, cdr: ChangeDetectorRef, dateHelper: DateHelperService, noAnimation?: NzNoAnimationDirective | undefined);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    setPanelMode(): void;
    updatePickerStyle(): void;
    /**
     * Triggered when overlayOpen changes (different with realOpenState)
     * @param open The overlayOpen in picker component
     */
    onOpenChange(open: boolean): void;
    onChangeFn: (val: CompatibleDate | null) => void;
    onTouchedFn: () => void;
    writeValue(value: CompatibleDate): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): 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;
    static ɵfac: i0.ɵɵFactoryDef<AbstractPickerComponent>;
    static ɵdir: i0.ɵɵDirectiveDefWithMeta<AbstractPickerComponent, never, never, { "nzAllowClear": "nzAllowClear"; "nzAutoFocus": "nzAutoFocus"; "nzDisabled": "nzDisabled"; "nzOpen": "nzOpen"; "nzClassName": "nzClassName"; "nzDisabledDate": "nzDisabledDate"; "nzLocale": "nzLocale"; "nzPlaceHolder": "nzPlaceHolder"; "nzPopupStyle": "nzPopupStyle"; "nzDropdownClassName": "nzDropdownClassName"; "nzSize": "nzSize"; "nzStyle": "nzStyle"; "nzFormat": "nzFormat"; "nzDateRender": "nzDateRender"; "nzDisabledTime": "nzDisabledTime"; "nzRenderExtraFooter": "nzRenderExtraFooter"; "nzShowToday": "nzShowToday"; "nzMode": "nzMode"; "nzRanges": "nzRanges"; "nzDefaultPickerValue": "nzDefaultPickerValue"; "nzShowTime": "nzShowTime"; "nzSeparator": "nzSeparator"; }, { "nzOnPanelChange": "nzOnPanelChange"; "nzOnCalendarChange": "nzOnCalendarChange"; "nzOnOk": "nzOnOk"; "nzOnOpenChange": "nzOnOpenChange"; }, never>;
}
