import { IDateSelectionService } from '../interfaces/date-selection.service.interfaces'; /** * Implementation of DateSelectionService * Responsible for handling date selection and ranges */ export declare class DateSelectionService implements IDateSelectionService { /** * Select a single date * @param date Date to select * @returns Selected date */ selectDate(date: Date): Date; /** * Select a date for a range * @param date Date being selected * @param currentRange Current date range * @returns Updated date range */ selectDateRange(date: Date, currentRange: { startDate?: Date | null; endDate?: Date | null; start?: Date | null; end?: Date | null; }): { startDate: Date | null; endDate: Date | null; }; /** * Clear the current selection * @param isRangeMode Whether in range selection mode * @returns Updated selection state */ clearSelection(): { selectedDate: Date | null; selectedDateRange: { startDate: Date | null; endDate: Date | null; }; }; /** * Clear the date range selection * @returns Empty date range */ clearDateRange(): { startDate: Date | null; endDate: Date | null; }; /** * Check if a date is selected * @param date Date to check * @param selectedDate Currently selected date * @returns Boolean indicating if date is selected */ isDateSelected(date: Date, selectedDate: Date | null): boolean; /** * Check if a date is in the selected range * @param date Date to check * @param range Currently selected range * @returns Object with range info */ isDateInRange(date: Date, range: { startDate: Date | null; endDate: Date | null; }): { isInRange: boolean; isRangeStart: boolean; isRangeEnd: boolean; }; /** * Check if a date is in the selected range (simplified version) * @param date Date to check * @param range Currently selected range * @returns Boolean indicating if the date is in range */ isDateInSelectedRange(date: Date, range: { startDate: Date | null; endDate: Date | null; }): boolean; }