/**
 * Date selection service interface
 * Responsible for handling date selection and ranges
 */
export interface IDateSelectionService {
    /**
     * Select a single date
     */
    selectDate(date: Date): Date;
    /**
     * Select a date for a range
     */
    selectDateRange(date: Date, currentRange: {
        startDate: Date | null;
        endDate: Date | null;
    }): {
        startDate: Date | null;
        endDate: Date | null;
    };
    /**
     * Clear the current selection
     */
    clearSelection(isRangeMode: boolean): {
        selectedDate: Date | null;
        selectedDateRange: {
            startDate: Date | null;
            endDate: Date | null;
        };
    };
    /**
     * Check if a given date is selected
     */
    isDateSelected(date: Date, selectedDate: Date | null): boolean;
    /**
   * Check if a given date is in the selected range
   */
    isDateInRange(date: Date, range: {
        startDate: Date | null;
        endDate: Date | null;
    }): {
        isInRange: boolean;
        isRangeStart: boolean;
        isRangeEnd: boolean;
    };
    /**
     * Clear the date range selection
     */
    clearDateRange(): {
        startDate: Date | null;
        endDate: Date | null;
    };
    /**
     * Check if a date is in the selected range (simplified version)
     */
    isDateInSelectedRange(date: Date, range: {
        startDate: Date | null;
        endDate: Date | null;
    }): boolean;
}
