import React from "react"; export type CalendarA11yProps = { /** Label for the month select (screen readers). */ ariaLabelMonth: string; /** Label for the year select (screen readers). */ ariaLabelYear: string; /** Label for the calendar day grid (screen readers). */ ariaLabelCalendarGrid: string; /** Returns the accessible label for the calendar region. */ formatAriaLabel: (monthName: string, year: number) => string; /** Returns the accessible label for a day cell. */ formatAriaLabelDay: (date: Date) => string; }; export type CalendarSlotProps = { /** Screen-reader labels and calendar region label generator. */ a11y: CalendarA11yProps; }; export type CalendarDisplay = { /** Month names for the dropdown (e.g. from getMonthNames). Provided by parent. */ monthNames: string[]; /** Weekday labels for the header, in display order. Provided by parent. */ weekdayLabels: readonly string[]; /** When true, calendar weeks start on Monday; otherwise Sunday. Provided by parent. */ weekStartsOnMonday?: boolean; }; export type CalendarProps = { /** Currently selected date (or null). Used as initial view and to show selected state. */ value: Date | null; /** Called when user selects a date. */ onSelect: (date: Date) => void; /** Display config derived by parent (format/locale, week layout). */ calendarDisplay: CalendarDisplay; /** Slot props for sub-elements (e.g. a11y labels). */ slotProps: CalendarSlotProps; /** Year options for the dropdown. Provided by parent (e.g. from getYears). Used for dropdown and for clamping initial view. */ years: number[]; /** Id for the calendar region (e.g. for aria-controls from trigger). */ id: string; /** Optional test id. */ "data-e2e-test-id"?: string; }; export declare function Calendar({ value, onSelect, calendarDisplay, slotProps, years, id, "data-e2e-test-id": dataE2eTestId, }: CalendarProps): React.ReactElement;