import { DatePipe, NgClass } from '@angular/common';
import { AfterViewInit, ApplicationRef, ChangeDetectorRef, EnvironmentInjector, Injector, NgZone, OnDestroy, Renderer2 } from '@angular/core';
import { DokuFormField, DokuFormFieldAccessor, DokuFormFieldAccessorValidateValue } from '../../form-field';
import { DokuDatePickerRangeProps } from '../common/date-picker-range-props.component';
import * as i0 from "@angular/core";
export declare class DokuDateRangePicker extends DokuDatePickerRangeProps implements OnDestroy, AfterViewInit, DokuFormFieldAccessor {
    protected cdr: ChangeDetectorRef;
    private appRef;
    private injector;
    private renderer;
    private envInjector;
    private ngZone;
    private datePipe;
    private localeId;
    private document;
    private formField?;
    protected readonly class: NgClass['ngClass'];
    /**
     * Whether to close date range picker dropdown after selecting the end date.
     *
     * @default true;
     */
    closeOnDateClick: boolean;
    /**
     * Date format that will be used for formatting displayed value (start and end date) in the input field. It follows Angular DatePipe's format options.
     *
     * @default 'dd/MM/yyyy'
     */
    dateFormat: string;
    /**
     * Placeholder of the date range picker input.
     *
     * @default 'dd/mm/yyyy - dd/mm/yyyy'
     */
    placeholder: string;
    private isOpen;
    private portalElement?;
    private datePickerBaseRef?;
    private destroy$;
    private cleanup?;
    constructor(cdr: ChangeDetectorRef, appRef: ApplicationRef, injector: Injector, renderer: Renderer2, envInjector: EnvironmentInjector, ngZone: NgZone, datePipe: DatePipe, localeId: string, document: Document, formField?: DokuFormField | undefined);
    protected get formattedStartDate(): string | null;
    protected get formattedEndDate(): string | null;
    private get inputWrapperElement();
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    onDisable?: ((value: boolean) => void) | undefined;
    onReadonly?: ((value: boolean) => void) | undefined;
    onValidate?: ((value?: DokuFormFieldAccessorValidateValue | undefined) => void) | undefined;
    registerOnDisable(fn: (value: boolean) => void): void;
    registerOnValidate?(fn: (value?: DokuFormFieldAccessorValidateValue | undefined) => void): void;
    registerOnReadonly(fn: (value: boolean) => void): void;
    /**
     * Open the date range picker dropdown.
     */
    open(): void;
    /**
     * Close the date range picker dropdown.
     */
    close(): void;
    /**
     * Toggle the date range picker dropdown.
     */
    toggle(): void;
    private createPortalElement;
    private createDatePickerComponent;
    private onClickHandler;
    private doAutoUpdateDropdownPosition;
    private setInputWrapperCursorState;
    private formatDisplayedDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<DokuDateRangePicker, [null, null, null, null, null, null, null, null, null, { optional: true; host: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DokuDateRangePicker, "doku-date-range-picker", ["dokuDateRangePicker"], { "closeOnDateClick": "closeOnDateClick"; "dateFormat": "dateFormat"; "placeholder": "placeholder"; }, {}, never, never, true>;
}
