import { EventEmitter } from '@angular/core';
import { NullableDaterange } from '../interfaces/daterange.interface';
import { NullableDayModel } from '../models/day.model';
import { NullableTimerange } from '../interfaces/timerange.interface';
import * as i0 from "@angular/core";
/**
 * Daterange service.
 * Keeps track of daterange related values.
 */
export declare class DaterangeService {
    /** Minimum date that can be selected. */
    minDate: NullableDayModel;
    /** Maximum date that can be selected. */
    maxDate: NullableDayModel;
    private _selectedDaterange;
    timeActive: boolean;
    timeSecondsActive: boolean;
    /**
     * Selected daterange value.
     * @returns Selected daterange value.
     */
    get selectedDaterange(): NullableDaterange;
    /**
     * Set selected daterange value.
     * @param value - New selected daterange value.
     * @param triggerEvent - Trigger change event (default true).
     */
    updateSelectedDaterange(value: NullableDaterange | NullableTimerange, triggerEvent?: boolean): void;
    /**
     * Set selected Timerange value.
     * @param value - New selected Timerange value.
     * @param triggerEvent - Trigger change event (default true).
     */
    updateSelectedTimerange(value: NullableTimerange, triggerEvent?: boolean): void;
    /**
     * Event triggered when value changes.
     */
    valueChange: EventEmitter<import("../interfaces/daterange.interface").Daterange>;
    /**
     * Checks if daterange is valid.
     * Daterange is considered invalid when it's empty, or when one of it's properties is absent.
     * @returns Wether daterange is valid.
     */
    isValid(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DaterangeService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DaterangeService>;
}
