import { CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';
import { ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { DateAdapter, NtDateFormats, NtOverlayComponent } from '@ng-tangram/components/core';
import { NtFormFieldControl } from '@ng-tangram/components/forms';
import { NtDatePickerCalendarComponent } from './calendar.component';
import { NtDatePickerIcons } from './datepicker-icons';
export declare class NtDatePickerComponent<D> extends NtFormFieldControl<D> implements ControlValueAccessor {
    private _elementRef;
    private _dateAdapter;
    private _dateFormats;
    ngControl: NgControl;
    icons: NtDatePickerIcons;
    private _overlayToggle;
    tabIndex: number;
    _positionPairs: ConnectionPositionPair[];
    _displayValue: string;
    readonly empty: boolean;
    private _value;
    value: D | null;
    private _placeholder;
    placeholder: string;
    private _disabled;
    disabled: boolean;
    private _required;
    required: boolean;
    private _readonly;
    readonly: boolean;
    private _startAt;
    startAt: D | null;
    private _minDate;
    minDate: D | null;
    private _maxDate;
    maxDate: D | null;
    dateFilter: (date: D) => boolean;
    afterOpen: EventEmitter<any>;
    afterClosed: EventEmitter<any>;
    beforeOpen: EventEmitter<any>;
    beforeClosed: EventEmitter<any>;
    positionChange: EventEmitter<ConnectedOverlayPositionChange>;
    overlay: NtOverlayComponent;
    calendar: NtDatePickerCalendarComponent<D>;
    private _onChange;
    private _onTouched;
    readonly origin: CdkOverlayOrigin;
    constructor(_elementRef: ElementRef, _dateAdapter: DateAdapter<D>, _dateFormats: NtDateFormats, tabIndex: string, ngControl: NgControl, icons: NtDatePickerIcons);
    writeValue(value: D): void;
    registerOnChange(fn: (_: any) => {}): void;
    registerOnTouched(fn: () => {}): void;
    select(date: D): void;
    focus(): void;
    _afterOpen(event: any): void;
    _afterClosed(event: any): void;
    _beforeOpen(event: any): void;
    _beforeClosed(event: any): void;
    _positionChange(change: ConnectedOverlayPositionChange): void;
    _onClick(event: Event): void;
    _onClear(event: Event): void;
    setDisabledState(isDisabled: boolean): void;
    private _getValidDateOrNull;
}
