import { ElementRef, ViewContainerRef, Renderer2, ChangeDetectorRef, ComponentFactoryResolver, EventEmitter, SimpleChanges, OnChanges, OnDestroy, NgZone } from '@angular/core'; import { AbstractControl, ControlValueAccessor, Validator } from '@angular/forms'; import { IMyOptions, IMyDateModel, IMyRangeDateSelection, IMyCalendarViewChanged, IMyInputFieldChanged } from './interfaces/public-api'; import { UtilService, DatepickerLocaleService, DefaultConfigService } from './services/public-api'; export declare class FarrisDatePickerDirective implements OnChanges, OnDestroy, ControlValueAccessor, Validator { localeService: DatepickerLocaleService; private utilService; private vcRef; private cfr; private renderer; private cdr; private elem; private config; private zone; options: IMyOptions; locale: string; defaultMonth: string; dateChanged: EventEmitter; inputFieldChanged: EventEmitter; calendarViewChanged: EventEmitter; calendarToggle: EventEmitter; rangeDateSelection: EventEmitter; private cRef; private inputText; private preventClose; private disabled; private opts; onChangeCb: (_: any) => void; onTouchedCb: () => void; constructor(localeService: DatepickerLocaleService, utilService: UtilService, vcRef: ViewContainerRef, cfr: ComponentFactoryResolver, renderer: Renderer2, cdr: ChangeDetectorRef, elem: ElementRef, config: DefaultConfigService, zone: NgZone); onKeyUp(event: KeyboardEvent): void; onBlur(): void; private onClickWrapper; onClick(evt: MouseEvent): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; setLocaleOptions(): void; parseOptions(opts: IMyOptions): void; formatDate(value: any): IMyDateModel; writeValue(value: any): void; registerOnChange(fn: any): void; registerOnTouched(fn: any): void; setDisabledState(isDisabled: boolean): void; validate(c: AbstractControl): { [p: string]: any; }; openCalendar(): void; closeCalendar(): void; toggleCalendar(event: MouseEvent): void; clearDate(): void; isDateValid(): boolean; private ignoreKeyPress; private closeSelector; private updateModel; private setInputValue; private focusToInput; private emitDateChanged; private emitInputFieldChanged; private emitCalendarChanged; private emitRangeDateSelection; private emitCalendarToggle; private jsDateToMyDate; private appendSelector; private getSelectorPosition; private getSelectorDimension; }