import { nativeDateMath } from '../date-math/native-date-math.js'; import { CalendarMode, DateTimePickerOptions, DateTimeResult, DateValue, PickerInstance, TimeValue } from '../types.js'; export interface DateTimeControllerState { isOpen: boolean; mode: CalendarMode; allowModeToggle: boolean; showSecondaryCalendar: boolean; viewYear: number; viewMonth: number; selected: DateValue | null; time: Required | null; view: 'day' | 'month' | 'year'; yearGroupStart: number; timeFormat: '12h' | '24h'; minuteStep: number; } export interface DateTimeController extends PickerInstance { getState(): DateTimeControllerState; /** * Accepts a raw AD `Date` (mirrors the `value` option and what framework * wrappers hold), a result-shaped `{ ad: Date }` (what `getValue()` returns, * so the value round-trips), or `null` to clear. */ setValue(value: Date | DateTimeResult | { ad: Date; } | null): void; selectDay(value: DateValue): void; goToday(): void; setTime(hour: number, minute: number, second?: number): void; setHour(hour24: number): boolean; setMinute(minute: number): boolean; stepHour(delta: number): void; stepMinute(delta: number): void; toggleMeridiem(): void; setTimeToNow(): void; confirm(): void; clear(): void; navigateMonth(delta: number): void; navigateYear(delta: number): void; navigateYearGroup(delta: number): void; setView(view: 'day' | 'month' | 'year'): void; selectMonthView(month: number): void; selectYearView(year: number): void; toggleMode(): void; isDisabled(value: DateValue): boolean; validateTyped(text: string): 'valid' | 'invalid' | 'empty'; commitTyped(text: string): 'valid' | 'invalid' | 'empty'; typedString(): string; typedReference(): string; yearBounds(): { min: number; max: number; }; isHourDisabled(hour: number): boolean; isMinuteDisabled(hour: number, minute: number): boolean; cellForBs(year: number, month: number, day: number): DateValue; buildMonthCells(year: number, month: number): Array; } export declare function createDateTimeController(initialOptions?: DateTimePickerOptions): DateTimeController; export { nativeDateMath };