import React from "react";
import type { DatePickerProps, DatePickerState, DatePickerSize, DateRange, DatePickerMode, DatePickerTheme } from "./DatePicker.types";
import { DatePickerTrigger } from "./DatePickerTrigger";
import { DatePickerBody } from "./DatePickerBody";
import { DatePickerPresets } from "./DatePickerPresets";
interface DatePickerContextType {
    mode: DatePickerMode;
    isOpen: boolean;
    setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
    selectedValue: Date | DateRange | undefined;
    setSelectedValue: React.Dispatch<React.SetStateAction<Date | DateRange | undefined>>;
    minDate?: Date;
    maxDate?: Date;
    isDateDisabled?: (date: Date) => boolean;
    showToday?: boolean;
    selectTodayByDefault?: boolean;
    weekdays?: string[];
    months?: string[];
    yearRange?: {
        start: number;
        end: number;
    };
    handleDateSelect: (date: Date) => void;
    handleRangeSelect?: (range: DateRange) => void;
    size: DatePickerSize;
    state: DatePickerState;
    theme: DatePickerTheme;
    triggerRef: React.RefObject<HTMLButtonElement | null>;
    contentRef: React.RefObject<HTMLDivElement | null>;
}
export declare const DatePickerContext: React.Context<DatePickerContextType | undefined>;
/**
 * Main DatePicker Component - follows Select pattern exactly
 */
declare const DatePickerComponent: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
declare const DatePickerWithCompounds: typeof DatePickerComponent & {
    Trigger: typeof DatePickerTrigger;
    Body: typeof DatePickerBody;
    Presets: typeof DatePickerPresets;
};
export { DatePickerTrigger, DatePickerBody, DatePickerPresets, DatePickerWithCompounds as DatePicker, };
export { DatePickerWithCompounds };
