import { CdkOverlayOrigin, ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';
import { ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { DateAdapter, NtDateFormats } from '@ng-tangram/components/core';
import { NtOverlayComponent } from '@ng-tangram/components/overlay';
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;
    get empty(): boolean;
    private _value;
    get value(): D | null;
    set value(value: D | null);
    private _placeholder;
    set placeholder(value: string);
    get placeholder(): string;
    private _disabled;
    set disabled(value: boolean);
    get disabled(): boolean;
    private _required;
    get required(): boolean;
    set required(value: boolean);
    private _readonly;
    set readonly(value: boolean);
    get readonly(): boolean;
    private _startAt;
    get startAt(): D | null;
    set startAt(value: D | null);
    private _minDate;
    get minDate(): D | null;
    set minDate(value: D | null);
    private _maxDate;
    get maxDate(): D | null;
    set maxDate(value: 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;
    _onAfterOpen(event: any): void;
    _onAfterClosed(event: any): void;
    _onBeforeOpen(event: any): void;
    _onBeforeClosed(event: any): void;
    _onPositionChange(change: ConnectedOverlayPositionChange): void;
    _onClick(event: Event): void;
    _onClear(event: Event): void;
    setDisabledState(isDisabled: boolean): void;
    private _getValidDateOrNull;
}
