export interface TimeValue {
    /** Hours (0-23) */
    hours: number;
    /** Minutes (0-59) */
    minutes: number;
    /** Seconds (0-59) */
    seconds?: number;
}
export type TimePickerFormat = "12" | "24";
export interface TimePickerPanelProps {
    /** Current time value. */
    value?: TimeValue;
    /** Callback when time changes. */
    onChange?: (value: TimeValue) => void;
    /** 12-hour or 24-hour format. */
    format?: TimePickerFormat;
    /** Show seconds column. */
    showSeconds?: boolean;
    /** Minute step interval (e.g. 5 for 0, 5, 10...). */
    minuteStep?: number;
    /** Second step interval. */
    secondStep?: number;
    /** Disabled state. */
    disabled?: boolean;
    /** Additional CSS class names. */
    className?: string;
}
export type TimePickerType = "time" | "range";
export interface TimePickerProps {
    /** Current time value. TimeValue/Date/Dayjs for single, [TimeValue|Date, TimeValue|Date] for range. */
    value?: TimeValue | Date | [TimeValue | Date | null, TimeValue | Date | null] | null;
    /** Callback when time changes. Returns Dayjs object (or [Dayjs, Dayjs] for range) and formatted string. */
    onChange?: (value: unknown, timeString: string | [string, string]) => void;
    /** Callback when the trigger input(s) lose focus. */
    onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
    /** Single time or range selection. */
    type?: TimePickerType;
    /** 12-hour or 24-hour format. */
    format?: TimePickerFormat;
    /** Custom display format string (dayjs syntax, e.g. "h:mm A"). Overrides default format/showSeconds for display & parsing. */
    displayFormat?: string;
    /** Show seconds column. */
    showSeconds?: boolean;
    /** Minute step interval (e.g. 5 for 0, 5, 10...). */
    minuteStep?: number;
    /** Second step interval. */
    secondStep?: number;
    /** Disabled state. */
    disabled?: boolean;
    /** Placeholder text for the input. */
    placeholder?: string;
    /** Label displayed above the input. */
    label?: string;
    /** Error message displayed below the input. */
    error?: string;
    /** Help text displayed below the input. */
    helpText?: React.ReactNode;
    /** Size of the trigger input. */
    size?: "small" | "medium" | "large";
    /** Required field indicator. */
    required?: boolean;
    /** Timezone display tag (replaces clock icon). */
    timezone?: string;
    /** Controlled popover open state. Omit for uncontrolled. */
    open?: boolean;
    /** Callback when popover open state changes (fires for both controlled and uncontrolled). */
    onOpenChange?: (open: boolean) => void;
    /** Render an OK button; defer onChange until OK is clicked or popover closes. Defaults to true (matches antd). Pass false for live onChange. */
    needConfirm?: boolean;
    /** Callback when the OK button is clicked (only relevant when `needConfirm` is true). */
    onOk?: (value: unknown) => void;
    /** Props forwarded to the label element. */
    labelProps?: Record<string, unknown>;
    /** Additional CSS class names. */
    className?: string;
}
