import { Observable, Subject } from 'rxjs'; import { IDay, IDayDate, IRange, IRangeDayIds, IRangeItem } from '../models/interfaces'; import * as i0 from "@angular/core"; /** Basic service for dates */ export declare abstract class DateService { /** Dates of days (linear structure, each day has its own Date object) */ protected readonly dayDates: IDayDate[]; protected selectedDay: IDay | null; /** Range Change Subscription */ protected readonly rangeChanged$: Subject; /** Range Change Subscription (public) */ readonly rangeChangedObs$: Observable; /** Change Subscription */ protected readonly changed$: Subject; /** Change Subscription (public) */ readonly changedObs$: Observable; /** Subscription to change selected days */ protected readonly dayIdsChanged$: Subject; /** Subscription to change selected days (public) */ readonly dayIdsChangedObs$: Observable; protected abstract selectDay(day: IDay): void; protected abstract selectRange(secondDay: IDay): void; abstract selectDate(day: IDay): void; /** Getting Ids of days in the middle of a range */ protected getInRangeDayIds(startDayId: string, endDayId: string): string[]; protected getRangeItem(day: IDay): IRangeItem; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }