import { AfterViewChecked, AfterViewInit, ApplicationRef, ChangeDetectorRef, ElementRef, EventEmitter, Injector, KeyValueDiffers, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges, ViewContainerRef } from '@angular/core';
import dayjs from 'dayjs';
import { NgxDaterangepickerBootstrapComponent } from "./ngx-daterangepicker-bootstrap.component";
import { NgxDaterangepickerLocaleService } from "./ngx-daterangepicker-locale.service";
import * as i0 from "@angular/core";
export declare class NgxDaterangepickerBootstrapDirective implements OnInit, OnDestroy, OnChanges, AfterViewInit, AfterViewChecked {
    private viewContainerRef;
    private injector;
    private applicationRef;
    private differs;
    private elementRef;
    private _changeDetectorRef;
    private _el;
    private _renderer;
    private _localeService;
    $event: any;
    daterangepicker: NgxDaterangepickerBootstrapComponent | any;
    private daterangepickerRef;
    private readonly daterangepickerElement;
    private localeDiffer?;
    private firstMonthDayClass?;
    private _onChange;
    private _onTouched;
    private _disabled?;
    private _value;
    private _startKey;
    private _endKey;
    private _locale;
    private _resizeObserver?;
    minDate?: dayjs.Dayjs;
    maxDate?: dayjs.Dayjs;
    autoApply?: boolean;
    alwaysShowCalendars?: boolean;
    showCustomRangeLabel?: boolean;
    linkedCalendars?: boolean;
    dateLimit: number | null;
    singleDatePicker?: boolean;
    showWeekNumbers?: boolean;
    showISOWeekNumbers?: boolean;
    showDropdowns?: boolean;
    isInvalidDate?: Function;
    isCustomDate?: Function;
    isTooltipDate?: Function;
    showClearButton?: boolean;
    customRangeDirection?: boolean;
    ranges: any;
    opens: string;
    drops: string;
    lastMonthDayClass?: string;
    emptyWeekRowClass?: string;
    emptyWeekColumnClass?: string;
    firstDayOfNextMonthClass?: string;
    lastDayOfPreviousMonthClass?: string;
    keepCalendarOpeningWithRange?: boolean;
    showRangeLabelOnInput?: boolean;
    showCancel: Boolean;
    lockStartDate: Boolean;
    closeOnAutoApply: boolean;
    timePicker: Boolean;
    timePicker24Hour: Boolean;
    timePickerIncrement: Number;
    timePickerSeconds: Boolean;
    formlyCustomField: Boolean;
    set startKey(value: any);
    set endKey(value: any);
    set locale(value: any);
    get disabled(): boolean | undefined;
    get locale(): any;
    change: EventEmitter<Object>;
    rangeClicked: EventEmitter<Object>;
    datesUpdated: EventEmitter<Object>;
    startDateChanged: EventEmitter<Object>;
    endDateChanged: EventEmitter<Object>;
    clearClicked: EventEmitter<void>;
    notForChangesProperty: Array<string>;
    get value(): any;
    set value(val: any);
    constructor(viewContainerRef: ViewContainerRef, injector: Injector, applicationRef: ApplicationRef, differs: KeyValueDiffers, elementRef: ElementRef, _changeDetectorRef: ChangeDetectorRef, _el: ElementRef, _renderer: Renderer2, _localeService: NgxDaterangepickerLocaleService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onBlur(): void;
    open(event?: any): void;
    hide(e?: any): void;
    toggle(e?: any): void;
    clear(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(state: boolean): void;
    private setValue;
    ngAfterViewChecked(): void;
    onWindowResize(): void;
    pickerResizeObserver(): void;
    /**
     * Set position of the calendar, this works as expected only if you add daterangepickerElement to DOM body
     */
    setPosition(): void;
    getOffset(element: any): {
        top: any;
        left: any;
        height: any;
        width: any;
    };
    inputChanged(e: any): void;
    /**
     * For click outside of the calendar's container
     * @param event event object
     */
    outsideClick(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxDaterangepickerBootstrapDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NgxDaterangepickerBootstrapDirective, "input[ngxDaterangepickerBootstrap]", never, { "minDate": "minDate"; "maxDate": "maxDate"; "autoApply": "autoApply"; "alwaysShowCalendars": "alwaysShowCalendars"; "showCustomRangeLabel": "showCustomRangeLabel"; "linkedCalendars": "linkedCalendars"; "dateLimit": "dateLimit"; "singleDatePicker": "singleDatePicker"; "showWeekNumbers": "showWeekNumbers"; "showISOWeekNumbers": "showISOWeekNumbers"; "showDropdowns": "showDropdowns"; "isInvalidDate": "isInvalidDate"; "isCustomDate": "isCustomDate"; "isTooltipDate": "isTooltipDate"; "showClearButton": "showClearButton"; "customRangeDirection": "customRangeDirection"; "ranges": "ranges"; "opens": "opens"; "drops": "drops"; "lastMonthDayClass": "lastMonthDayClass"; "emptyWeekRowClass": "emptyWeekRowClass"; "emptyWeekColumnClass": "emptyWeekColumnClass"; "firstDayOfNextMonthClass": "firstDayOfNextMonthClass"; "lastDayOfPreviousMonthClass": "lastDayOfPreviousMonthClass"; "keepCalendarOpeningWithRange": "keepCalendarOpeningWithRange"; "showRangeLabelOnInput": "showRangeLabelOnInput"; "showCancel": "showCancel"; "lockStartDate": "lockStartDate"; "closeOnAutoApply": "closeOnAutoApply"; "timePicker": "timePicker"; "timePicker24Hour": "timePicker24Hour"; "timePickerIncrement": "timePickerIncrement"; "timePickerSeconds": "timePickerSeconds"; "formlyCustomField": "formlyCustomField"; "startKey": "startKey"; "endKey": "endKey"; "locale": "locale"; }, { "change": "change"; "rangeClicked": "rangeClicked"; "datesUpdated": "datesUpdated"; "startDateChanged": "startDateChanged"; "endDateChanged": "endDateChanged"; "clearClicked": "clearClicked"; }, never, never, false, never>;
}
