import { ConnectedOverlayPositionChange, VerticalConnectionPos } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ComponentRef, ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { DateConverter, DevConfigService } from 'ng-devui/utils';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import { SelectDateRangeChangeEventArgs, SelectDateRangeChangeReason } from './date-range-change-event-args.model';
import { DateRangePickerComponent } from './date-range-picker.component';
import * as i0 from "@angular/core";
export declare class DateRangePickerDirective implements OnInit, ControlValueAccessor, OnDestroy {
    private elementRef;
    private renderer;
    private datePickerConfig;
    private i18n;
    private cdr;
    private devConfigService;
    private doc;
    locale: string;
    cssClass: string;
    disabled: boolean;
    dateConverter: DateConverter;
    hideOnRangeSelected: boolean;
    customViewTemplate: TemplateRef<any>;
    splitter: string;
    showAnimation: boolean;
    selectedRangeChange: EventEmitter<SelectDateRangeChangeEventArgs>;
    dateRangePicker: ComponentRef<DateRangePickerComponent>;
    private _maxDate;
    private _minDate;
    _selectedRange: any[];
    private _isOpen;
    private _dateConfig;
    private _dateFormat;
    private _showTime;
    cdkConnectedOverlayOrigin: any;
    i18nLocale: I18nInterface['locale'];
    private i18nSubscription;
    private valueChangeSubscrip;
    datepickerPosition: VerticalConnectionPos;
    valueList: any[];
    startAnimation: boolean;
    document: Document;
    private onChange;
    private onTouched;
    set maxDate(date: Date | any);
    get maxDate(): Date | any;
    set minDate(date: Date | any);
    get minDate(): Date | any;
    set selectedRange(range: Array<Date | null>);
    get selectedRange(): Array<Date | null>;
    set showTime(showTime: boolean);
    get showTime(): boolean;
    set dateConfig(dateConfig: any);
    get dateConfig(): any;
    set dateFormat(dateFormat: string);
    get dateFormat(): string;
    set rangeStart(rangeStart: Date);
    get rangeEnd(): any;
    set isOpen(isOpen: boolean);
    get isOpen(): boolean;
    constructor(elementRef: ElementRef, renderer: Renderer2, datePickerConfig: DatePickerConfig, i18n: I18nService, cdr: ChangeDetectorRef, devConfigService: DevConfigService, doc: any);
    onBlur($event: any): void;
    checkDateConfig(dateConfig: any): boolean;
    ngOnInit(): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    initInputChanges(): void;
    writeValue(selectedRange: any): void;
    setI18nText(): void;
    chooseDate: (range: any, reason?: any, hide?: boolean) => void;
    updateCdkConnectedOverlayOrigin(): void;
    toggle(clickShow?: boolean): void;
    hide(event?: any): void;
    private writeModelValue;
    private formatDateRange;
    onDocumentClick: ($event: any) => void;
    onPositionChange(position: ConnectedOverlayPositionChange): void;
    notifyValueChange(dateObj: any): void;
    private transUserInputToDatepicker;
    resetValue(): void;
    validateDate(value: string): boolean;
    ngOnDestroy(): void;
    clearAll: (reason?: SelectDateRangeChangeReason, hide?: boolean) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerDirective, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerDirective, "[dDateRangePicker]", ["dateRangePicker"], { "locale": "locale"; "cssClass": "cssClass"; "disabled": "disabled"; "dateConverter": "dateConverter"; "hideOnRangeSelected": "hideOnRangeSelected"; "customViewTemplate": "customViewTemplate"; "splitter": "splitter"; "showAnimation": "showAnimation"; "maxDate": "maxDate"; "minDate": "minDate"; "selectedRange": "selectedRange"; "showTime": "showTime"; "dateConfig": "dateConfig"; "dateFormat": "dateFormat"; }, { "selectedRangeChange": "selectedRangeChange"; }, never, never, false>;
}
