import { type DateRange } from 'react-day-picker';
export interface DateFilterButtonProps {
    /** The selected date value */
    value?: Date;
    /** Callback when date changes */
    onChange?: (date: Date | undefined) => void;
    /** Placeholder text when no date is selected */
    placeholder?: string;
    /** Whether the date picker is disabled */
    disabled?: boolean;
    /** Custom class name for the trigger button */
    className?: string;
    /** Format string for displaying the date */
    dateFormat?: string;
    /** Minimum selectable date */
    minDate?: Date;
    /** Maximum selectable date */
    maxDate?: Date;
    /** Dates to disable */
    disabledDates?: Date[] | ((date: Date) => boolean);
    /** Text direction for RTL support */
    dir?: 'ltr' | 'rtl';
}
export interface DateRangeFilterButtonProps {
    /** The selected date range value */
    value?: DateRange;
    /** Callback when date range changes */
    onChange?: (range: DateRange | undefined) => void;
    /** Placeholder text when no dates are selected */
    placeholder?: string;
    /** Whether the date picker is disabled */
    disabled?: boolean;
    /** Custom class name for the trigger button */
    className?: string;
    /** Format string for displaying dates */
    dateFormat?: string;
    /** Minimum selectable date */
    minDate?: Date;
    /** Maximum selectable date */
    maxDate?: Date;
    /** Dates to disable */
    disabledDates?: Date[] | ((date: Date) => boolean);
    /** Text direction for RTL support */
    dir?: 'ltr' | 'rtl';
}
export interface DatePickerProps {
    /** The selected date value */
    value?: Date;
    /** Callback when date changes */
    onChange?: (date: Date | undefined) => void;
    /** Placeholder text when no date is selected */
    placeholder?: string;
    /** Whether the date picker is disabled */
    disabled?: boolean;
    /** Custom class name for the trigger button */
    className?: string;
    /** Format string for displaying the date */
    dateFormat?: string;
    /** Minimum selectable date */
    minDate?: Date;
    /** Maximum selectable date */
    maxDate?: Date;
    /** Dates to disable */
    disabledDates?: Date[] | ((date: Date) => boolean);
    /** Text direction for RTL support */
    dir?: 'ltr' | 'rtl';
}
export interface DateRangePickerProps {
    /** The selected date range value */
    value?: DateRange;
    /** Callback when date range changes */
    onChange?: (range: DateRange | undefined) => void;
    /** Placeholder text when no dates are selected */
    placeholder?: string;
    /** Whether the date picker is disabled */
    disabled?: boolean;
    /** Custom class name for the trigger button */
    className?: string;
    /** Format string for displaying dates */
    dateFormat?: string;
    /** Minimum selectable date */
    minDate?: Date;
    /** Maximum selectable date */
    maxDate?: Date;
    /** Dates to disable */
    disabledDates?: Date[] | ((date: Date) => boolean);
    /** Text direction for RTL support */
    dir?: 'ltr' | 'rtl';
}
export interface TimePickerProps {
    /** The selected time value (as a string "HH:MM") */
    value?: string;
    /** Callback when time changes */
    onChange?: (time: string | undefined) => void;
    /** Placeholder text when no time is selected */
    placeholder?: string;
    /** Whether the time picker is disabled */
    disabled?: boolean;
    /** Custom class name for the trigger button */
    className?: string;
    /** Minimum selectable time (as "HH:MM") */
    minTime?: string;
    /** Maximum selectable time (as "HH:MM") */
    maxTime?: string;
    /** Step interval for minutes (default: 5) */
    minuteStep?: number;
    /** Text direction for RTL support */
    dir?: 'ltr' | 'rtl';
    /** Use 24-hour format (default: true) */
    use24Hour?: boolean;
}
/**
 * DatePicker - A date picker component with a popover calendar
 * Matches the HumainOS design system
 */
declare function DatePicker({ value, onChange, placeholder, disabled, className, dateFormat, minDate, maxDate, disabledDates, dir, }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
declare namespace DatePicker {
    var displayName: string;
}
/**
 * DateRangePicker - A date range picker component with a two-month popover calendar
 * Matches the HumainOS design system
 */
declare function DateRangePicker({ value, onChange, placeholder, disabled, className, dateFormat, minDate, maxDate, disabledDates, dir, }: DateRangePickerProps): import("react/jsx-runtime").JSX.Element;
declare namespace DateRangePicker {
    var displayName: string;
}
/**
 * TimePicker - A time picker component with hour and minute selection
 * Matches the HumainOS design system
 */
declare function TimePicker({ value, onChange, placeholder, disabled, className, minTime, maxTime, minuteStep, dir, use24Hour, }: TimePickerProps): import("react/jsx-runtime").JSX.Element;
declare namespace TimePicker {
    var displayName: string;
}
/**
 * DateFilterButton - A compact date filter button matching Figma filter button design
 * Gray background, rounded corners, compact padding with calendar icon
 */
declare function DateFilterButton({ value, onChange, placeholder, disabled, className, dateFormat, minDate, maxDate, disabledDates, dir, }: DateFilterButtonProps): import("react/jsx-runtime").JSX.Element;
declare namespace DateFilterButton {
    var displayName: string;
}
/**
 * DateRangeFilterButton - A compact date range filter button matching Figma filter button design
 * Gray background, rounded corners, compact padding with calendar icon
 */
declare function DateRangeFilterButton({ value, onChange, placeholder, disabled, className, dateFormat, minDate, maxDate, disabledDates, dir, }: DateRangeFilterButtonProps): import("react/jsx-runtime").JSX.Element;
declare namespace DateRangeFilterButton {
    var displayName: string;
}
export { DateFilterButton, DatePicker, DateRangeFilterButton, DateRangePicker, TimePicker, };
