import { StaticRangeWithDefault } from './DateRangePicker.config';
/**
 * date-range-picker :: allows the user to manually select ranges of dates
 * static-range-picker :: allows the user to select from a predefined list of date ranges
 * */
export type DateRangePickerState = 'date-range-picker' | 'static-range-picker';
export type DateRangePickerReturn = {
    startDate?: Date;
    endDate?: Date;
};
type OnDateRangeSelectedFull = (startDate: Date, endDate: Date) => void;
type OnDateRangeSelectedEmpty = (startDate: undefined, endDate: undefined) => void;
type OnDateRangeSelected = OnDateRangeSelectedEmpty | OnDateRangeSelectedFull;
export interface DateRangePickerProps {
    disabled?: boolean;
    /**
     * -Will disable dates in calendar view
     * -Will remove from static selector list dates that whos startDate is after the minDate
     * */
    minDate?: Date;
    /**
     * -Will disable dates in calendar view
     * */
    maxDate?: Date;
    /**
     * Notifier parent component of changes in min/max dates that happen
     * */
    onChange?: (dates: DateRangePickerReturn, source: 'MANUAL' | 'AUTOMATIC') => void;
    /**
     * Notifier parent component when the view state changes between calendar and static ranges
     * */
    onStateChange?: (state: DateRangePickerState) => void;
    /**
     * Callback when any date is clicked in the calendar view with type identifier
     */
    onDateRangeSelected?: OnDateRangeSelected;
    ranges?: StaticRangeWithDefault[];
    startDate?: Date;
    endDate?: Date;
    testId?: string;
    className?: string;
    state?: DateRangePickerState;
}
export declare const DateRangePicker: (props: DateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
export {};
