import { CdkOverlayOrigin, ConnectedOverlayPositionChange, VerticalConnectionPos } from '@angular/cdk/overlay';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { I18nInterface, I18nService } from 'ng-devui/i18n';
import { DateConverter, DevConfigService } from 'ng-devui/utils';
import { Subject, Subscription } from 'rxjs';
import { DatePickerConfigService as DatePickerConfig } from '../date-picker.config.service';
import * as i0 from "@angular/core";
export declare class TwoDatePickerComponent implements OnInit, OnDestroy {
    el: ElementRef;
    protected datePickerConfig: DatePickerConfig;
    private i18n;
    private cdr;
    private devConfigService;
    private doc;
    locale: string;
    cssClass: string;
    disabled: boolean;
    dateConverter: DateConverter;
    showAnimation: boolean;
    showTime: boolean;
    selectedRange: any[];
    hideOnRangeSelected: boolean;
    customViewTemplate: TemplateRef<any>;
    selectedRangeChange: EventEmitter<any>;
    leftPicker: ElementRef;
    rightPicker: ElementRef;
    templateWrap: ElementRef;
    datePosition: VerticalConnectionPos;
    selectDateSubject: Subject<{
        side: string;
        date: Date;
        onlyWrite?: boolean;
    }>;
    hoverOnDate: Subject<object>;
    switchOriginPositionSub: Subject<'start' | 'end' | false>;
    today: Date;
    rangeStart: any;
    rangeEnd: any;
    disableToday: any;
    i18nText: I18nInterface['datePicker'];
    i18nLocale: I18nInterface['locale'];
    i18nSubscription: Subscription;
    startAnimation: boolean;
    currentCalendars: any[];
    cdkConnectedOverlayOrigin: CdkOverlayOrigin;
    private _isOpen;
    private _whichOpen;
    private _dateConfig;
    private _dateFormat;
    private _maxDate;
    private _minDate;
    document: Document;
    set dateConfig(dateConfig: any);
    get dateConfig(): any;
    set dateFormat(dateFormat: string);
    get dateFormat(): string;
    set maxDate(date: Date | any);
    get maxDate(): Date | any;
    set minDate(date: Date | any);
    get minDate(): Date | any;
    set whichOpen(side: 'start' | 'end' | false);
    get whichOpen(): 'start' | 'end' | false;
    set isOpen(isOpen: boolean);
    get isOpen(): boolean;
    constructor(el: ElementRef, datePickerConfig: DatePickerConfig, i18n: I18nService, cdr: ChangeDetectorRef, devConfigService: DevConfigService, doc: any);
    checkDateConfig(dateConfig: any): boolean;
    onDocumentClick: ($event: any) => void;
    ngOnInit(): void;
    isDisableToday(): void;
    toggle: (side?: 'start' | 'end') => void;
    onPositionChange(position: ConnectedOverlayPositionChange): void;
    convertDate(date: any): Date;
    formatDate(date: any): string;
    updateCdkConnectedOverlayOrigin(el: ElementRef): void;
    syncPickerPair(currentCalender: object, orientation: string): void;
    rangeChange(data: any): void;
    chooseDate: (range: any) => void;
    notifyValueChange(): void;
    selectingDate(event: any): void;
    subscribeHoverActions(): void;
    previewRangeEnd(date: any): void;
    syncRangeStart(rangeStart: any, picker: any): void;
    selectStart(date: Date, passive?: boolean): void;
    selectEnd(date: Date, passive?: boolean): void;
    chooseToday(event: any): void;
    clearBtn(event: any): void;
    clear: (side: 'start' | 'end') => void;
    setI18nText(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TwoDatePickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TwoDatePickerComponent, "[dTwoDatePicker]", ["twoDatePicker"], { "locale": { "alias": "locale"; "required": false; }; "cssClass": { "alias": "cssClass"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "dateConverter": { "alias": "dateConverter"; "required": false; }; "showAnimation": { "alias": "showAnimation"; "required": false; }; "hideOnRangeSelected": { "alias": "hideOnRangeSelected"; "required": false; }; "dateConfig": { "alias": "dateConfig"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; }, { "selectedRangeChange": "selectedRangeChange"; }, never, ["*"], false, never>;
}
