import { OnInit, OnDestroy, EventEmitter } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { CalendarPropsType } from './calendar.props.component';
import { LocaleProviderService } from '../locale-provider/locale-provider.service';
import { CalendarDatePickerComponent } from './datepicker/datepicker.component';
export { CalendarPropsType };
export interface CalendarStateType {
    showTimePicker: boolean;
    timePickerTitle?: string;
    startDate?: Date;
    endDate?: Date;
    disConfirmBtn?: boolean;
    clientHight?: number;
}
export declare class CalendarComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private _localeProviderService;
    isShow: boolean;
    contentAnimateClass: string;
    maskAnimateClass: string;
    showClear: boolean;
    isSameDate: Function;
    props: CalendarPropsType;
    state: CalendarStateType;
    private _unsubscribe$;
    private _enterDirection;
    private _dateModelType;
    private _dateModelValue;
    private _dateModelTime;
    datepicker: CalendarDatePickerComponent;
    locale: any;
    defaultTimeValue: any;
    prefixCls: any;
    enterDirection: any;
    visible: any;
    getDateExtra: any;
    defaultDate: any;
    minDate: any;
    maxDate: any;
    pickTime: any;
    type: any;
    showShortcut: any;
    rowSize: any;
    infinite: any;
    defaultValue: any;
    onSelect: any;
    onCancel: EventEmitter<any>;
    onConfirm: EventEmitter<any>;
    onSelectHasDisableDate: EventEmitter<any>;
    class: string;
    constructor(_localeProviderService: LocaleProviderService);
    writeValue(value: Date | Array<Date> | null): void;
    registerOnChange(fn: (date: Date | Array<Date>) => void): void;
    registerOnTouched(fn: () => void): void;
    receiveProps(nextProps: CalendarPropsType): void;
    showAnimation(): void;
    hideAnimation(): void;
    selectDate: (date: Date, useDateTime?: boolean, oldState?: {
        startDate?: Date;
        endDate?: Date;
    }, props?: CalendarPropsType) => CalendarStateType;
    writeModelData(date: any): void;
    onSelectedDate: (date: Date) => void;
    triggerSelectHasDisableDate: (date: Date[]) => void;
    onClose: () => void;
    triggerConfirm: () => void;
    triggerCancel(): void;
    triggerClear: () => void;
    onTimeChange: (date: Date) => void;
    shortcutSelect: (startDate: Date, endDate: Date, props?: CalendarPropsType) => void;
    setClientHeight: (height: number) => void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    private onChangeFn;
    private onTouchFn;
}
