import { ElementRef, OnInit, EventEmitter, OnDestroy } from '@angular/core'; import * as momentNs from 'moment'; import { BehaviorSubject } from 'rxjs'; export declare type IDatePickerInputEvent = IDatePickerInputDateEvent | IDatePickerInputActionEvent; export declare type IDatePickerOutputEvent = IDatePickerOutputDefaultEvent | IDatePickerOutputChangedEvent | IDatePickerOutputInvalidEvent | IDatePickerOutputClearedEvent; export interface IDatePickerInputDateEvent { type: 'setDate'; data: string; } export interface IDatePickerInputActionEvent { type: 'action'; data: 'toggle' | 'close' | 'open'; } export interface IDatePickerOutputDefaultEvent { type: 'default'; data: 'init' | 'opened' | 'closed'; } export interface IDatePickerOutputChangedEvent { type: 'dateChanged'; data: momentNs.Moment; } export interface IDatePickerOutputInvalidEvent { type: 'dateInvalid'; data: string; } export interface IDatePickerOutputClearedEvent { type: 'dateCleared'; data: string; } export declare class DatePickerOptions { firstWeekdaySunday?: boolean; format?: string; constructor(obj?: DatePickerOptions); } export interface ICalendarDate { day: number | null; month: number | null; year: number | null; enabled: boolean; today: boolean; selected: boolean; momentObj: momentNs.Moment; } export declare class DatePickerComponent implements OnInit, OnDestroy { options: DatePickerOptions; inputEvents: EventEmitter; outputEvents: EventEmitter; id: string; description: string; opened: boolean; days: ICalendarDate[]; inputField: ElementRef; constructor(); private validInputFormats; private dateModelValue; private modelValue; todayMsg: string; clearMsg: string; private bSubject; private sub; model: string; dateModel: momentNs.Moment | null; readonly currentDate: momentNs.Moment; private eventsSub; private validateDate(newValue); setDateIfChanged(newDate: momentNs.Moment): void; inputChanged(newValue: string): void; ngOnInit(): void; generateCalendar(): void; setValue(date: momentNs.Moment | null): void; private formatDate(date); selectDate(date: momentNs.Moment | null, e?: MouseEvent): void; writeValue(date: momentNs.Moment): void; prevMonth(): void; nextMonth(): void; prevYear(): void; nextYear(): void; today(): void; toggle(): void; private open; private close; clear(): void; readonly subject: BehaviorSubject; ngOnDestroy(): void; focus(): boolean; }