import { DateAdapter } from '../../date-adapter';
import { CustomLabels, YearRange } from '../../utils/models';
import { DatepickerMode } from '../../utils/types';
import * as i0 from "@angular/core";
export declare class CalendarUtilsService {
    /**
     * Generate days grid for calendar view
     */
    generateDaysGrid(currentDate: Date, dateAdapter: DateAdapter<Date>): Date[];
    /**
     * Generate month list (1-12)
     */
    generateMonthList(): number[];
    /**
     * Generate year list around a specific year
     */
    generateYearList(centerYear: number, length?: number): number[];
    /**
     * Generate year ranges for year selector
     */
    generateYearRanges(length: number, dateAdapter: DateAdapter<Date>): YearRange[];
    /**
     * Get week day names
     */
    getWeekDays(dateAdapter: DateAdapter<Date>): string[];
    /**
     * Get month names
     */
    getMonthNames(dateAdapter: DateAdapter<Date>, format?: 'long' | 'short'): string[];
    /**
     * Get month name by number
     */
    getMonthName(month: number, dateAdapter: DateAdapter<Date>): string;
    /**
     * Get current month name
     */
    getCurrentMonthName(currentDate: Date, dateAdapter: DateAdapter<Date>): string;
    /**
     * Get current year
     */
    getCurrentYear(currentDate: Date, dateAdapter: DateAdapter<Date>): number;
    /**
     * Navigate to previous month
     */
    navigateToPrevMonth(currentDate: Date, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Navigate to next month
     */
    navigateToNextMonth(currentDate: Date, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Navigate to previous year
     */
    navigateToPrevYear(currentDate: Date, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Navigate to next year
     */
    navigateToNextYear(currentDate: Date, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Navigate to previous year range
     */
    navigateToPrevYearRange(yearList: number[]): number[];
    /**
     * Navigate to next year range
     */
    navigateToNextYearRange(yearList: number[]): number[];
    /**
     * Create date for month selection
     */
    createDateForMonth(year: number, month: number, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Create date for year selection
     */
    createDateForYear(year: number, currentDate: Date, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Set year for existing date
     */
    setYearForDate(date: Date, year: number, dateAdapter: DateAdapter<Date>): Date;
    /**
     * Determine view mode based on datepicker mode
     */
    determineViewMode(mode: DatepickerMode): 'days' | 'months' | 'years';
    /**
     * Generate default periods for range picker
     */
    generateDefaultPeriods(today: Date, lang: any): CustomLabels[];
    /**
     * Helper method to add days (used in generateDefaultPeriods)
     */
    private addDays;
    /**
     * Helper method to add months (used in generateDefaultPeriods)
     */
    private addMonths;
    /**
     * Check if two dates are in the same month
     */
    isSameMonth(date1: Date, date2: Date, dateAdapter: DateAdapter<Date>): boolean;
    /**
     * Check if date is today
     */
    isToday(date: Date, dateAdapter: DateAdapter<Date>): boolean;
    /**
     * Check if month is active
     */
    isActiveMonth(month: number, currentDate: Date, dateAdapter: DateAdapter<Date>): boolean;
    /**
     * Check if year is active
     */
    isActiveYear(year: number, currentDate: Date, dateAdapter: DateAdapter<Date>): boolean;
    /**
     * Check if year range is active
     */
    isActiveYearRange(startYear: number, yearList: number[]): boolean;
    /**
     * Get scroll item ID for different view modes
     */
    getScrollItemId(viewMode: 'days' | 'months' | 'years', date: Date, dateAdapter: DateAdapter<Date>, yearRanges?: YearRange[]): number | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<CalendarUtilsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CalendarUtilsService>;
}
