import { ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { DateConverter } from 'ng-devui/utils';
import { Subject } from 'rxjs';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import { SelectDateRangeChangeEventArgs, SelectDateRangeChangeReason } from './date-range-change-event-args.model';
import * as i0 from "@angular/core";
export declare class DateRangePickerComponent implements OnChanges, OnInit, ControlValueAccessor, OnDestroy {
    private datePickerConfig;
    private i18n;
    locale: string;
    cssClass: string;
    disabled: boolean;
    dateConverter: DateConverter;
    selectedRange: any[];
    dateFormat: string;
    customViewTemplate: TemplateRef<any>;
    selectedRangeChange: EventEmitter<SelectDateRangeChangeEventArgs>;
    hide: EventEmitter<boolean>;
    leftPicker: ElementRef;
    rightPicker: ElementRef;
    templateWrap: ElementRef;
    private _dateConfig;
    private _maxDate;
    private _minDate;
    private _showTime;
    currentCalendars: any[];
    i18nLocale: I18nInterface['locale'];
    i18nText: I18nInterface['datePicker'];
    private i18nSubscription;
    hoverOnDate: Subject<object>;
    rangeStart: any;
    rangeEnd: any;
    private onChange;
    private onTouched;
    set showTime(showTime: boolean);
    get showTime(): boolean;
    set dateConfig(dateConfig: any);
    get dateConfig(): any;
    set maxDate(date: Date | any);
    get maxDate(): Date | any;
    set minDate(date: Date | any);
    get minDate(): Date | any;
    constructor(datePickerConfig: DatePickerConfig, i18n: I18nService);
    checkDateConfig(dateConfig: any): boolean;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    writeValue(selectedRange: any): void;
    setI18nText(): void;
    rangeChange(data: any): void;
    chooseDate: (range: any, reason?: any) => void;
    selectingDate(event: any): void;
    subscribeHoverActions(): void;
    previewRangeEnd(date: any): void;
    syncRangeStart(rangeStart: any, picker: any): void;
    syncPickerPair(currentCalender: object, orientation: string): void;
    notifyValueChange(range: any, reason: any): void;
    consolidateTime(): void;
    ngOnDestroy(): void;
    clearAll: (reason?: SelectDateRangeChangeReason) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DateRangePickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DateRangePickerComponent, "d-date-range-picker", ["dateRangePicker"], { "locale": { "alias": "locale"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateConverter": { "alias": "dateConverter"; "required": false; }; "selectedRange": { "alias": "selectedRange"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "customViewTemplate": { "alias": "customViewTemplate"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "dateConfig": { "alias": "dateConfig"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; }, { "selectedRangeChange": "selectedRangeChange"; "hide": "hide"; }, never, never, false, never>;
}
