import type { IAppearanceableProps } from '../../../Behaviors/Appearanceable';
import type { IDisableableProps } from '../../../Behaviors/Disableable';
import type { IFitableProps } from '../../../Behaviors/Fitable';
import type { IInvalidableProps } from '../../../Behaviors/Invalidable';
import type { ILocaleableProps } from '../../../Behaviors/Localeable';
import type { IOrientableProps } from '../../../Behaviors/Orientable';
import type { ISlottableProps } from '../../../Behaviors/Slottable';
import type { IValueableProps } from '../../../Behaviors/Valueable';
import type { IVariantableProps } from '../../../Behaviors/Variantable';
import type { CalendarMarkerHandler } from '../../../Types/CalendarMarkerHandler';
import type { CalendarView } from '../../../Types/CalendarView';
import type { DayOfWeek } from '../../../Types/DayOfWeek';
import type { RangeSelectionMode } from '../../../Types/RangeSelectionMode';
/**
 * Represents the properties for the CalendarElement.
 *
 * @public
 */
export interface ICalendarElementProps extends IValueableProps, IDisableableProps, IOrientableProps, IVariantableProps, IFitableProps, IInvalidableProps, IAppearanceableProps, ILocaleableProps, ISlottableProps {
    /**
     * The currently displayed date for navigation purposes.
     */
    displayDate: Date | null;
    /**
     * The start date of the visible display range.
     */
    displayDateStart: Date | null;
    /**
     * The end date of the visible display range.
     */
    displayDateEnd: Date | null;
    /**
     * The currently selected date value.
     */
    value: Date | null;
    /**
     * The array of selected dates for multi-select mode.
     */
    values: Array<Date>;
    /**
     * The current view mode of the calendar (month, year, decade).
     */
    view: CalendarView;
    /**
     * The selection mode for date range selection.
     */
    selectionMode: RangeSelectionMode;
    /**
     * The array of dates that should be disabled and not selectable.
     */
    blackoutDates: Array<Date>;
    /**
     * The array of dates that should be visually marked as special.
     */
    specialDates: Array<Date>;
    /**
     * The minimum selectable date.
     */
    minDate: Date | null;
    /**
     * The maximum selectable date.
     */
    maxDate: Date | null;
    /**
     * The first day of the week (0 = Sunday, 1 = Monday, etc.).
     */
    firstDayOfWeek: DayOfWeek;
    /**
     * Whether today is visually highlighted.
     */
    isTodayHighlighted: boolean;
    /**
     * Whether weekend days are visually highlighted.
     */
    isWeekendHighlighted: boolean;
    /**
     * Whether week numbers are displayed.
     */
    showWeekNumbers: boolean;
    /**
     * Whether adjacent month days are displayed.
     */
    showAdjacent: boolean;
    /**
     * The handler function for rendering custom markers on dates.
     */
    markerHandler: CalendarMarkerHandler;
    /**
     * The views that the user is allowed to navigate to.
     * Accepts a single view or an array of views.
     */
    allowedViews: CalendarView | Array<CalendarView>;
    /**
     * Whether the navigation buttons (previous, today, next) are displayed.
     */
    showNavigation: boolean;
}
//# sourceMappingURL=ICalendarElementProps.d.ts.map