import { OnInit, ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, Validator, AbstractControl } from '@angular/forms';
export declare class DatepickerFormComponent implements OnInit, ControlValueAccessor, Validator {
    private element;
    disabled: boolean;
    readonly: boolean;
    required: boolean;
    defaultToPresentDate: boolean;
    allowPreviousDates: boolean;
    allowFutureDates: boolean;
    dateFormat: string;
    placeholder: string;
    align: "top" | "bottom";
    from: string;
    to: string;
    onDateChange: EventEmitter<Date>;
    date: Date;
    visible: boolean;
    presentDate: Date;
    isValid: boolean;
    dateValidators: ((date: Date) => boolean)[];
    private onChanged;
    private onTouched;
    private validateDateRange;
    constructor(element: ElementRef);
    ngOnInit(): void;
    setDate(date: Date): void;
    setVisible(): void;
    unsetVisible(): void;
    onClickOutsideComponent(targetElement: HTMLElement): void;
    onDateSelectEvent(inputDate: Date): void;
    onChange(inputDate: string): void;
    onFocus(): void;
    onTab(inputDate: string): void;
    parseDate(inputDate: string): Date;
    validateIsNotBeforeDate(date: Date): boolean;
    validateIsNotAfterDate(date: Date): boolean;
    createDateRangeValidator(from: Date, to: Date): (date: Date) => boolean;
    writeValue(value: Date): void;
    registerOnChange(fn: (value: Date) => void): void;
    registerOnTouched(fn: () => void): void;
    propogateTouched(): void;
    propogateChange(value: any): void;
    validate(control: AbstractControl): {
        [key: string]: any;
    };
}
