import { BehaviorSubject, Observable } from 'rxjs';
import { DatePickerPreviewMode } from '../../../declarations/types/date-picker-preview-mode.type';
import { DatePickerSelectionMode } from '../../../declarations/types/date-picker-selection-mode.type';
import * as i0 from "@angular/core";
export declare class DatePickerStateService {
    readonly weekDayNames: string[];
    readonly currentDate: Date;
    readonly hours$: BehaviorSubject<number>;
    readonly minutes$: BehaviorSubject<number>;
    readonly seconds$: BehaviorSubject<number>;
    readonly isBackDating$: BehaviorSubject<boolean>;
    readonly availableEndDate$: BehaviorSubject<Date | number>;
    readonly selectionMode$: BehaviorSubject<DatePickerSelectionMode>;
    readonly previewMode$: BehaviorSubject<DatePickerPreviewMode>;
    readonly withSeconds$: BehaviorSubject<boolean>;
    readonly selectedDate$: BehaviorSubject<Date>;
    readonly selectedRange$: BehaviorSubject<Date[]>;
    readonly isSelectionModeDate$: Observable<boolean>;
    readonly hoveredDate$: BehaviorSubject<Date>;
    readonly hoveredRange$: Observable<Date[]>;
    processDateSelection(date: Date): void;
    processDateHover(date: Date): void;
    isSameDate(dateA: Date, dateB: Date): boolean;
    dateIsInDateRange(date: Date, dateRange: Date[]): boolean;
    dateIsInDateArray(date: Date, dateArray: Date[]): boolean;
    dateIsRangeStartDate(date: Date, dateRange: Date[]): boolean;
    dateIsRangeEndDate(date: Date, dateRange: Date[]): boolean;
    dateIsNotAvailable(date: Date, isBackDating: boolean, availableEndDate: Date | number): boolean;
    isDateStartInHoveredAndSelectedRange(date: Date, hoveredRange: Date[], selectedRange: Date[]): boolean;
    isDateEndInHoveredAndSelectedRange(date: Date, hoveredRange: Date[], selectedRange: Date[]): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerStateService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DatePickerStateService>;
}
