import { AfterViewInit, OnDestroy } from '@angular/core';
import '@cds/core/icon/register.js';
import { ClrCommonStrings, ClrCommonStringsService, ClrLayout, ClrPopoverEventsService, ClrPopoverPosition, ClrPopoverToggleService } from '@clr/angular';
import { DaterangePreset } from '../../interfaces/daterange-preset.interface';
import { NullableDayModel } from '../../models/day.model';
import { DaterangeControlStateService } from '../../providers/daterange-control-state.service';
import { DaterangeParsingService } from '../../providers/daterange-parsing.service';
import { DaterangeService } from '../../providers/daterange.service';
import { OpenedDatepickersTrackerService } from '../../providers/opened-datepickers-tracker.service';
import { ClrAbstractContainer } from '../abstract-container.component';
import { DateTimerangePreset } from '../../interfaces/timerange-preset.interface';
import { NullableTimeModel } from '../../models/time.model';
import * as i0 from "@angular/core";
/**
 * Daterangepicker container.
 */
export declare class ClrDaterangepickerContainerComponent extends ClrAbstractContainer implements AfterViewInit, OnDestroy {
    private readonly clrPopoverEventsService;
    private readonly clrPopoverToggleService;
    private readonly clrCommonStringsService;
    protected readonly clrLayout: ClrLayout;
    protected readonly daterangeControlStateService: DaterangeControlStateService;
    private readonly openedDatepickersTrackerService;
    protected readonly daterangeService: DaterangeService;
    private readonly daterangeParsingService;
    /**
     * List of presets.
     */
    presets: Array<DaterangePreset>;
    /**
     * List of time presets.
     */
    presetsDateTime: Array<DateTimerangePreset>;
    _timeSelection: boolean;
    set timeSelection(value: boolean);
    _activateSeconds: boolean;
    set activateSeconds(value: boolean);
    /**
     * Set popover position.
     */
    set clrPosition(position: string);
    /**
     * Text for the 'from' label.
     */
    labelFrom: string;
    /**
     * Text for the 'to' label.
     */
    labelTo: string;
    /** List of datepicker components children. */
    private datepickerComponents;
    /** Daterangepicker directive. */
    private daterangepickerDirective;
    /** CSS classes. */
    classes: string;
    /**
     * Popover open state.
     */
    protected open: boolean;
    /**
     * Popover position config.
     */
    protected popoverPosition: ClrPopoverPosition;
    /**
     * Date from.
     * @returns Date from.
     */
    protected get dateFrom(): import("../../models/day.model").DayModel;
    protected get timeFrom(): import("../../models/time.model").TimeModel;
    /**
     * Date to.
     * @returns Date to.
     */
    protected get dateTo(): import("../../models/day.model").DayModel;
    protected get timeTo(): import("../../models/time.model").TimeModel;
    /**
     * Minimum date that can be selected.
     * @returns Minimum date that can be selected.
     */
    protected get minDate(): NullableDayModel;
    /**
     * Maximum date that can be selected.
     * @returns Maximum date that can be selected.
     */
    protected get maxDate(): NullableDayModel;
    private _friendlyDaterange?;
    /**
     * Get friendly daterange text.
     * @returns Friendly daterange text.
     */
    protected get friendlyDaterange(): string;
    /**
     * List of common translation keys.
     */
    protected get commonStrings(): Readonly<ClrCommonStrings>;
    /** List of subscriptions to later destroy. */
    private subscriptions;
    constructor(clrPopoverEventsService: ClrPopoverEventsService, clrPopoverToggleService: ClrPopoverToggleService, clrCommonStringsService: ClrCommonStringsService, clrLayout: ClrLayout, daterangeControlStateService: DaterangeControlStateService, openedDatepickersTrackerService: OpenedDatepickersTrackerService, daterangeService: DaterangeService, daterangeParsingService: DaterangeParsingService);
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Listen for daterange value changes.
     */
    private listenForDaterangeValueChanges;
    /**
     * Listen for any opened datepickers tracker state changes.
     */
    private listenForOpenedDatepickersTrackerChanges;
    /**
     * Listen for popover toggle changes.
     */
    private listenForPopoverToggleChanges;
    /**
     * Event triggered when date from changed.
     * @param value - Date from.
     */
    protected onDateFromChange(value: NullableDayModel): void;
    /**
     * Event triggered when date to changed.
     * @param value - Date to.
     */
    protected onDateToChange(value: NullableDayModel): void;
    /**
     * Apply selected preset.
     * @param preset - Selected preset.
     */
    protected applyPreset(preset: DaterangePreset): void;
    applyPresetTime(preset: DateTimerangePreset): void;
    protected onTimeFromChange(value: NullableTimeModel): void;
    protected onTimeToChange(value: NullableTimeModel): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ClrDaterangepickerContainerComponent, [null, null, null, { optional: true; }, null, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ClrDaterangepickerContainerComponent, "clr-daterangepicker-container", never, { "presets": { "alias": "presets"; "required": false; }; "presetsDateTime": { "alias": "presetsDateTime"; "required": false; }; "timeSelection": { "alias": "timeSelection"; "required": false; }; "activateSeconds": { "alias": "activateSeconds"; "required": false; }; "clrPosition": { "alias": "clrPosition"; "required": false; }; "labelFrom": { "alias": "labelFrom"; "required": false; }; "labelTo": { "alias": "labelTo"; "required": false; }; }, {}, ["daterangepickerDirective"], ["label", "[clrDaterangepicker]", "clr-control-helper", "clr-control-error", "clr-control-success"], false, never>;
}
