import { type VariantProps } from 'class-variance-authority'; import type { TimeValue } from '../_shared/time'; /** * Curated imperative handle, registered with the agent registry and consumed * by the agent adapter. (The forwarded `ref` is the root element.) */ export interface TimePickerHandle { /** Get the current time value, or null when unset. */ getValue: () => TimeValue | null; /** Set the time value. Hours are kept within 0–23 and minutes within 0–59. */ setValue: (value: TimeValue) => void; /** Clear to null with allowEmpty; otherwise reset to 00:00. */ clear: () => void; /** Whether the time dropdown is open. Always false unless `dropdown` is on. */ isOpen: () => boolean; /** Open the time dropdown without moving focus. A no-op unless `dropdown` is on and the picker is enabled. */ open: () => void; /** Close the time dropdown. A no-op unless `dropdown` is on. */ close: () => void; } declare const wrapperVariants: (props?: ({ size?: "sm" | "md" | "lg" | null | undefined; tone?: "default" | "error" | null | undefined; isDisabled?: boolean | null | undefined; opensOnClick?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type MinuteStep = 1 | 5 | 10 | 15 | 30; interface TimePickerBaseProps extends Pick, 'size'> { /** Force 12h/24h mode. Defaults to locale detection. */ hour12?: boolean; /** Minute increment step. */ minuteStep?: MinuteStep; /** Use full-width colon separator for CJK apps. */ fullWidthSeparator?: boolean; /** Custom AM/PM labels. */ periodLabels?: { am: string; pm: string; }; /** Component size. */ size?: 'sm' | 'md' | 'lg'; /** * Adds a list to pick the time from: a clock button at the field's end, * and a click anywhere on the field opens a panel with an hour column, a * minute column (in `minuteStep` steps) and, in 12h mode, an AM/PM column. * Typing still works while it is open. For pointer and touch-first forms * such as business hours. Off by default: the typed field is unchanged. */ dropdown?: boolean; /** Whether the input is disabled. */ disabled?: boolean; /** Additional class names. */ className?: string; /** id override. */ id?: string; /** * Accessible name for the time group when it is NOT in a `FormField`, or * to override the field's label (two pickers in one field, say). Without * a name of its own the group is called "Time". Inside a `FormField` the * group takes the field's label. */ 'aria-label'?: string; /** Accessible name by reference. Wins over `aria-label` and the FormField label. */ 'aria-labelledby'?: string; } /** Empty values are opt-in, keeping existing onChange callbacks non-nullable. */ export type TimePickerProps = TimePickerBaseProps & ({ allowEmpty?: false; value?: TimeValue; defaultValue?: TimeValue; onChange?: (value: TimeValue) => void; } | { /** Start unset and allow clearing to null, distinct from midnight. */ allowEmpty: true; value?: TimeValue | null; defaultValue?: TimeValue | null; onChange?: (value: TimeValue | null) => void; }); export declare const TimePicker: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=time-picker.d.ts.map