/** * TypeScript type definitions for Calendar Controller * Provides comprehensive typing for bindings, methods, and events */ import type { Binding } from "@uplink-protocol/core"; import type { DateRange, YearRange } from "../interfaces"; import type { CalendarControllerBindings } from "./calendar-controller-bindings.type"; import type { CalendarControllerMethods } from "./calendar-controller-methods.type"; export type { CalendarControllerBindings } from "./calendar-controller-bindings.type"; export type { CalendarControllerMethods } from "./calendar-controller-methods.type"; export type { CalendarControllerEvents } from "./calendar-controller-events.type"; export type { CalendarState } from "./calendar-state.type"; export type { TypedCalendarController, CalendarControllerFactory, CalendarControllerInstance } from "./typed-calendar-controller.type"; /** * Binding Value Types - Helper types for accessing binding values */ export type BindingValue = CalendarControllerBindings[T] extends Binding ? U : never; /** * Method Parameter Types - Helper types for method parameters */ export type SelectDateParams = Parameters; export type GoToMonthParams = Parameters; export type FormatDateParams = Parameters; /** * Event Data Types - Helper types for event payloads */ export type DateSelectedEventData = Date; export type DateRangeSelectedEventData = DateRange; export type MonthChangedEventData = number; export type YearChangedEventData = number; export type ViewChangedEventData = { month: number; year: number; }; export type YearRangeChangedEventData = YearRange;