import { ControlValueAccessor } from '@angular/forms';
import { BaseComponent } from '../base-component';
import { DateRange } from './nx-calendar.component.types';
import * as i0 from "@angular/core";
type SelectableItemSelection = 'single' | 'start' | 'end' | 'middle' | 'none';
type CalendarDay = {
    date: Date;
    outsideCurrentMonth: boolean;
    isToday: boolean;
    selection: SelectableItemSelection;
    archive: boolean;
};
type Hour = {
    hour: number;
    selection: SelectableItemSelection;
    display: string;
};
export declare class NxCalendarComponent extends BaseComponent implements ControlValueAccessor {
    locale: import("@angular/core").InputSignal<string>;
    dateRangeEnabled: import("@angular/core").InputSignal<boolean>;
    showHours: import("@angular/core").InputSignal<boolean>;
    currentView: import("@angular/core").WritableSignal<"days" | "months">;
    dateCurrentlyViewed: import("@angular/core").WritableSignal<Date>;
    carouselHeading: import("@angular/core").Signal<string>;
    daysOfTheMonth: import("@angular/core").Signal<CalendarDay[]>;
    hoursDisabled: import("@angular/core").Signal<boolean>;
    hoursOfTheDay: import("@angular/core").Signal<Hour[]>;
    daysOfTheWeekNames: string[];
    allMonths: string[];
    ngOnInit(): void;
    hoveredHour: import("@angular/core").WritableSignal<Hour | undefined>;
    handleMouseEnterHour(hour: Hour): void;
    handleMouseLeaveHour(): void;
    hoveredDay: import("@angular/core").WritableSignal<Date | undefined>;
    handleMouseEnterDay(day: Date): void;
    handleMouseLeaveDay(): void;
    handleArrowClick(change: number): void;
    handleHeaderClick(): void;
    handleMonthClick(month: number): void;
    selectedDays: import("@angular/core").WritableSignal<DateRange | undefined>;
    handleDayClick(day: Date): void;
    updateSelectedDates(newSelectedValue: DateRange | undefined): void;
    handleDoneClick(): void;
    selectedHours: import("@angular/core").WritableSignal<{
        start: number | undefined;
        end: number | undefined;
    }>;
    handleHourClick(hour: Hour): void;
    dateRange: import("@angular/core").WritableSignal<DateRange | undefined>;
    writeValue(obj: DateRange): void;
    private onChange;
    registerOnChange(fn: (value: DateRange | undefined) => void): void;
    private onTouched;
    registerOnTouched(fn: () => void): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NxCalendarComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NxCalendarComponent, "nx-calendar", never, { "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "dateRangeEnabled": { "alias": "dateRangeEnabled"; "required": false; "isSignal": true; }; "showHours": { "alias": "showHours"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
export {};
