import { AfterContentInit, ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { TlInput } from '../input/input';
import { ConnectedOverlayPositionChange } from '@angular/cdk/overlay';
import { ValueAccessorBase } from '../input/core/value-accessor';
import { CalendarHoliday } from '../calendar/interfaces/calendar-holiday.interface';
import * as i0 from "@angular/core";
export interface DateOject {
    day: number;
    month: number;
    year: number;
}
export declare class TlDatePicker extends ValueAccessorBase<Date | string> implements OnInit, AfterContentInit, OnDestroy {
    private changes;
    locale: string;
    ngControl: NgControl;
    label: string;
    name: string;
    labelSize: string;
    textAlign: string;
    iconAfter: any;
    isoDate: boolean;
    labelPlacement: string;
    formatDate: string;
    readonly: boolean;
    disabled: boolean;
    placeholder: string;
    clearButton: boolean;
    autoClose: boolean;
    openOnFocus: boolean;
    holidays: Array<CalendarHoliday>;
    selectDay: EventEmitter<any>;
    completeMask: EventEmitter<any>;
    calendar: any;
    tlInput: TlInput;
    calendarContent: any;
    arrow: any;
    isOpen: boolean;
    positionOverlay: string;
    description: string;
    trigger: any;
    date: Date;
    private year;
    private month;
    private day;
    private subscription;
    constructor(changes: ChangeDetectorRef, locale: string, ngControl: NgControl);
    get control(): import("@angular/forms").AbstractControl<any, any>;
    setControl(): void;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    private listenControlChanges;
    private decomposeDate;
    private setDateMask;
    private setDateObject;
    private getMask;
    private getObjectValues;
    private handleAutoClose;
    private handleOpenOnFocus;
    private getFormattedDate;
    private setValue;
    private formatDayAndMonth;
    handleDateChange(): void;
    onBlur(): void;
    onCompleteMask(): void;
    onDateInputFocus(): void;
    onSelectDay($event: any): void;
    onPositionChange($event: ConnectedOverlayPositionChange): void;
    onBackDropClick(): void;
    onClearInput($event: any): void;
    handleArrowKeys($event: any): void;
    private handleArrowUp;
    private handleTab;
    private handleEscape;
    private handleArrowDown;
    private stringUnmasked;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlDatePicker, [null, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlDatePicker, "tl-datepicker", never, { "label": "label"; "name": "name"; "labelSize": "labelSize"; "textAlign": "textAlign"; "iconAfter": "iconAfter"; "isoDate": "isoDate"; "labelPlacement": "labelPlacement"; "formatDate": "formatDate"; "readonly": "readonly"; "disabled": "disabled"; "placeholder": "placeholder"; "clearButton": "clearButton"; "autoClose": "autoClose"; "openOnFocus": "openOnFocus"; "holidays": "holidays"; }, { "selectDay": "selectDay"; "completeMask": "completeMask"; }, never, never, false, never>;
}
//# sourceMappingURL=datepicker.d.ts.map