import { CalendarMode } from '../common/types/calendar-mode';
import { IDatePickerDirectiveConfig } from './date-picker-directive-config.model';
import { IDpDayPickerApi } from './date-picker.api';
import { DatePickerComponent } from './date-picker.component';
import { ComponentFactoryResolver, ElementRef, EventEmitter, OnInit, ViewContainerRef } from '@angular/core';
import { NgControl } from '@angular/forms';
import { INavEvent } from '../common/models/navigation-event.model';
import { UtilsService } from '../common/services/utils/utils.service';
import { CalendarValue } from '../common/types/calendar-value';
import { ISelectionEvent } from '../common/types/selection-event.model';
import { SingleCalendarValue } from '../common/types/single-calendar-value';
import { Dayjs } from 'dayjs';
import * as i0 from "@angular/core";
export declare class DatePickerDirective implements OnInit {
    readonly viewContainerRef: ViewContainerRef;
    readonly elemRef: ElementRef;
    readonly componentFactoryResolver: ComponentFactoryResolver;
    readonly formControl: NgControl;
    readonly utilsService: UtilsService;
    open: EventEmitter<void>;
    close: EventEmitter<void>;
    onChange: EventEmitter<CalendarValue>;
    onGoToCurrent: EventEmitter<void>;
    onLeftNav: EventEmitter<INavEvent>;
    onRightNav: EventEmitter<INavEvent>;
    onSelect: EventEmitter<ISelectionEvent>;
    datePicker: DatePickerComponent;
    api: IDpDayPickerApi;
    constructor(viewContainerRef: ViewContainerRef, elemRef: ElementRef, componentFactoryResolver: ComponentFactoryResolver, formControl: NgControl, utilsService: UtilsService);
    private _config;
    get config(): IDatePickerDirectiveConfig;
    set config(config: IDatePickerDirectiveConfig);
    private _theme;
    get theme(): string;
    set theme(theme: string);
    private _mode;
    get mode(): CalendarMode;
    set mode(mode: CalendarMode);
    private _minDate;
    get minDate(): SingleCalendarValue;
    set minDate(minDate: SingleCalendarValue);
    private _maxDate;
    get maxDate(): SingleCalendarValue;
    set maxDate(maxDate: SingleCalendarValue);
    private _minTime;
    get minTime(): SingleCalendarValue;
    set minTime(minTime: SingleCalendarValue);
    private _maxTime;
    get maxTime(): SingleCalendarValue;
    set maxTime(maxTime: SingleCalendarValue);
    private _displayDate;
    get displayDate(): Dayjs | string;
    set displayDate(displayDate: Dayjs | string);
    ngOnInit(): void;
    createDatePicker(): DatePickerComponent;
    attachModelToDatePicker(): void;
    onClick(): void;
    onFocus(): void;
    onEnter(): void;
    markForCheck(): void;
    private updateDatepickerConfig;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerDirective, [null, null, null, { optional: true; }, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DatePickerDirective, "[dpDayPicker]", ["dpDayPicker"], { "config": { "alias": "dpDayPicker"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; }, { "open": "open"; "close": "close"; "onChange": "onChange"; "onGoToCurrent": "onGoToCurrent"; "onLeftNav": "onLeftNav"; "onRightNav": "onRightNav"; "onSelect": "onSelect"; }, never, never, false, never>;
}
