import { ReactNode } from 'react'; export interface DatePickerPreset { /** Button content. ReactNode so a caller can pass a badge/formatted fragment. */ label: ReactNode; /** Fired on click/Enter. The caller applies its own state (single date OR a range). */ onSelect: () => void; } export interface DatePickerProps { value?: Date | null; onChange?: (date: Date | null) => void; placeholder?: string; /** Earliest selectable DAY — compared on day boundaries, so a time-of-day component never half-disables its own date. */ min?: Date; /** Latest selectable DAY — see `min`. */ max?: Date; disabled?: boolean; error?: string; className?: string; /** Shortcut buttons rendered as a left column inside the calendar popover. */ presets?: DatePickerPreset[]; /** * Opens hour:minute selection — renders a time row INSIDE the calendar popover, * under the day grid. The trigger field's own width and layout are unchanged, so * a narrow filter rail is unaffected. @default false * * Off (the default) the emitted value is the raw day `Date` exactly as before. * On, picking a day PRESERVES the currently selected time (00:00 when there is * no value yet), seconds are always zeroed, and the result is clamped into * `[min, max]` — the same semantics `DateTimeInput` already has, so the two * layouts of the same idea cannot disagree. (NB-DATETIME-01) * * While on, picking a day does NOT close the popover (NB-DATETIME-03) — the * time box is part of the same interaction. The panel still closes the ways * it always has otherwise: outside-click, Escape, Tab-out, a preset pick, or * a trigger click. Off, a day pick still closes as it always has. */ showTime?: boolean; /** * NB-DATETIME-02 (LHA-445): where the time input sits while `showTime` is on. * "beside" (default) — a narrow labelled column to the RIGHT of the day grid, * separated by a vertical border: compact, shorter popover (the QA-requested look). * "below" — the previous full-width row UNDER the grid with a top border; pass * this to keep the pre-1.22 layout (e.g. inside a narrow filter rail). * Ignored while `showTime` is off. */ timeLayout?: "beside" | "below"; /** `` step while `showTime` is on, in MINUTES. @default 1 */ minuteStep?: number; /** ARIA forwarding — injected by FormField via cloneElement (mirrors Select) */ "aria-invalid"?: boolean | "true" | "false"; "aria-describedby"?: string; "aria-required"?: boolean | "true" | "false"; id?: string; } export declare function DatePicker({ value, onChange, placeholder, min, max, disabled, error, className, presets, showTime, timeLayout, minuteStep, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-required": ariaRequired, id, }: DatePickerProps): import("react").JSX.Element; //# sourceMappingURL=DatePicker.d.ts.map