import type { TimePickerFormat } from "../TimePicker/types";
export type DatePickerType = "date" | "range";
export interface DatePickerProps {
    /** Current value. Date for single, [Date, Date] for range. */
    value?: Date | [Date | null, Date | null] | null;
    /** Default value (uncontrolled). */
    defaultValue?: Date | [Date | null, Date | null];
    /** Callback on date change. */
    onChange?: (value: Date | [Date, Date] | null, formatted: string | [string, string]) => void;
    /** Single date or range selection. */
    type?: DatePickerType;
    /** Display format string (date-fns compatible, e.g. "dd/MM/yyyy"). */
    dateFormat?: string;
    /** Time format string (date-fns compatible, e.g. "HH:mm:ss"). */
    timeFormat?: string;
    /** Show time picker alongside calendar. */
    showTime?: boolean;
    /** Time picker format (12 or 24 hour). */
    timePickerFormat?: TimePickerFormat;
    /** Show seconds in time picker. */
    showSeconds?: boolean;
    /** Minimum selectable date. */
    minDate?: Date;
    /** Maximum selectable date. */
    maxDate?: Date;
    /** Placeholder text for the trigger input. */
    placeholder?: string;
    /** Label displayed above the picker. */
    label?: string;
    /** Error message displayed below the picker. */
    error?: string;
    /** Help text displayed below the picker. */
    helpText?: React.ReactNode;
    /** Size of the trigger. */
    size?: "small" | "medium" | "large";
    /** Disabled state. */
    disabled?: boolean;
    /** Show clear button. */
    allowClear?: boolean;
    /** Required field indicator. */
    required?: boolean;
    /** Timezone value (e.g. "utc" or undefined for local). */
    timezone?: string;
    /** Callback when timezone changes. */
    onTimezoneChange?: (tz: string | undefined) => void;
    /** Callback when OK is clicked (showTime mode). */
    onOk?: (value: Date | [Date, Date] | null) => void;
    /** Whether OK button is needed to confirm selection. */
    needConfirm?: boolean;
    /** Callback when popover opens/closes. */
    onOpenChange?: (open: boolean) => void;
    /** Additional CSS class names. */
    className?: string;
    /** Props forwarded to the label element. */
    labelProps?: Record<string, unknown>;
}
