import { Overlay, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, KeyValueDiffer, KeyValueDiffers, NgZone, ViewContainerRef, OnDestroy } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import moment from 'moment';
import * as i0 from "@angular/core";
export declare class ODaterangepickerDirective implements OnDestroy {
    private _dialog;
    private _ngZone;
    private _overlay;
    _viewContainerRef: ViewContainerRef;
    _changeDetectorRef: ChangeDetectorRef;
    _el: ElementRef;
    private differs;
    private scrollStrategy;
    private _onChange;
    private _onTouched;
    _validatorChange: Function;
    private _value;
    localeDiffer: KeyValueDiffer<string, any>;
    minDate: moment.Moment;
    maxDate: moment.Moment;
    showCustomRangeLabel: boolean;
    linkedCalendars: boolean;
    dateLimit: number;
    singleDatePicker: boolean;
    showWeekNumbers: boolean;
    showISOWeekNumbers: boolean;
    showDropdowns: boolean;
    isInvalidDate: () => boolean;
    isCustomDate: () => boolean;
    opens: string;
    drops: string;
    firstMonthDayClass: string;
    lastMonthDayClass: string;
    emptyWeekRowClass: string;
    firstDayOfNextMonthClass: string;
    lastDayOfPreviousMonthClass: string;
    keepCalendarOpeningWithRange: boolean;
    showRangeLabelOnInput: boolean;
    showCancel: boolean;
    timePicker: boolean;
    showRanges: boolean;
    timePicker24Hour: boolean;
    timePickerIncrement: number;
    timePickerSeconds: boolean;
    _locale: any;
    _separator: string;
    set separator(value: any);
    set locale(value: any);
    get locale(): any;
    private _endKey;
    private _startKey;
    ranges: any;
    oTouchUi: boolean;
    set startKey(value: string);
    get startKey(): string;
    set endKey(value: string);
    get endKey(): string;
    notForChangesProperty: Array<string>;
    get value(): any;
    set value(val: any);
    onChange: EventEmitter<object>;
    rangeClicked: EventEmitter<object>;
    datesUpdated: EventEmitter<object>;
    private _popupComponentRef;
    private _calendarPortal;
    _popupRef: OverlayRef;
    private _dialogRef;
    constructor(_dialog: MatDialog, _ngZone: NgZone, _overlay: Overlay, _viewContainerRef: ViewContainerRef, _changeDetectorRef: ChangeDetectorRef, _el: ElementRef, differs: KeyValueDiffers, scrollStrategy: ScrollStrategyOptions);
    initializeListeners(instance: any): void;
    onBlur(): void;
    open(): void;
    ngOnDestroy(): void;
    clear(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setValueInDateComponent(instance: any, val: any): void;
    private setValue;
    openAsPopup(): void;
    private _createPopup;
    private _createPopupPositionStrategy;
    openAsDialog(): void;
    close(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ODaterangepickerDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ODaterangepickerDirective, "input[o-daterange-input]", never, { "minDate": "minDate"; "maxDate": "maxDate"; "showCustomRangeLabel": "showCustomRangeLabel"; "linkedCalendars": "linkedCalendars"; "dateLimit": "dateLimit"; "singleDatePicker": "singleDatePicker"; "showWeekNumbers": "showWeekNumbers"; "showISOWeekNumbers": "showISOWeekNumbers"; "showDropdowns": "showDropdowns"; "isInvalidDate": "isInvalidDate"; "isCustomDate": "isCustomDate"; "opens": "opens"; "drops": "drops"; "lastMonthDayClass": "lastMonthDayClass"; "emptyWeekRowClass": "emptyWeekRowClass"; "firstDayOfNextMonthClass": "firstDayOfNextMonthClass"; "lastDayOfPreviousMonthClass": "lastDayOfPreviousMonthClass"; "keepCalendarOpeningWithRange": "keepCalendarOpeningWithRange"; "showRangeLabelOnInput": "showRangeLabelOnInput"; "showCancel": "showCancel"; "timePicker": "timePicker"; "showRanges": "showRanges"; "timePicker24Hour": "timePicker24Hour"; "timePickerIncrement": "timePickerIncrement"; "timePickerSeconds": "timePickerSeconds"; "separator": "separator"; "locale": "locale"; "_endKey": "_endKey"; "oTouchUi": "oTouchUi"; "startKey": "startKey"; "endKey": "endKey"; }, { "onChange": "onChange"; "rangeClicked": "rangeClicked"; "datesUpdated": "datesUpdated"; }, never, never, false, never>;
}
