import { Accessor, JSXElement, Setter } from "solid-js";
import { RnClassName, CustomDaysClassName, DateArray, DateObjectUnits, RnColor, PickerAloneValue, DatePickerOnChange, DatePickerType, IMonthSelectorType, IMonthYearSelectorFlexDirection, PickerRenderJSX, YearRange, Locale, LocaleOptions, MakeOptionalRequired, WeekDaysType, SelectorType } from "../../interface/general";
import { SelectorProps } from "../Selector";
export interface DatePickerProps extends RnColor, Omit<RnClassName, "inputClass" | "inputWrapperClass"> {
    type: DatePickerType;
    close?: () => void;
    handleOnChange: (data: DatePickerOnChange) => void;
    minDate?: MakeOptionalRequired<DateObjectUnits>;
    maxDate?: MakeOptionalRequired<DateObjectUnits>;
    onChange?: (data: DatePickerOnChange) => void;
    onYearChange?: (year: number) => void;
    onMonthChange?: (month: number) => void;
    onValueChange?: (value: DatePickerOnChange) => void;
    onDisabledDayError?: (data: DateObjectUnits) => void;
    ref?: Accessor<HTMLDivElement | null>;
    setRef?: Setter<HTMLDivElement | null>;
    value?: PickerAloneValue;
    setAllowedComponents?: Setter<HTMLElement[]>;
    month?: Accessor<number>;
    setMonth?: Setter<number>;
    year?: Accessor<number>;
    setYear?: Setter<number>;
    monthSelectorJSX?: PickerRenderJSX;
    yearSelectorJSX?: PickerRenderJSX;
    calendarAboveTopAreaJSX?: PickerRenderJSX;
    calendarTopAreaJSX?: PickerRenderJSX;
    calendarBottomAreaJSX?: PickerRenderJSX;
    calendarLeftAreaJSX?: PickerRenderJSX;
    calendarRightAreaJSX?: PickerRenderJSX;
    calendarJSX?: PickerRenderJSX;
    afterNextButtonAreaJSX?: PickerRenderJSX;
    beforePrevButtonAreaJSX?: PickerRenderJSX;
    weekDaysJSX?: PickerRenderJSX;
    monthSelectorFormat?: IMonthSelectorType;
    monthSelectorTopLabel?: string;
    yearSelectorCount: number;
    monthYearSelectorFlexDirection?: IMonthYearSelectorFlexDirection;
    yearRange?: YearRange;
    locale?: Locale;
    localeOptions?: LocaleOptions;
    nextIcon?: JSXElement;
    prevIcon?: JSXElement;
    hideTopArea?: boolean;
    removeNavButtons?: boolean;
    shouldCloseOnSelect?: boolean;
    shouldHighlightWeekends?: boolean;
    disallowSameDayRange?: boolean;
    hideCalendar?: boolean;
    hideOutSideDays?: boolean;
    twoMonthsDisplay?: boolean;
    showEndOfRange?: boolean;
    disableRangeHoverEffect?: boolean;
    zIndex?: number;
    startingMonth?: number;
    startingYear?: number;
    weekStartDay?: number;
    disabledDays?: DateArray[];
    enabledDays?: DateArray[];
    customDaysClassName?: CustomDaysClassName[];
    weekDaysType?: WeekDaysType;
    yearSelectorType?: SelectorType;
    monthSelectorType?: SelectorType;
    showSelectorTwo?: Accessor<boolean>;
    setShowSelectorTwo?: Setter<boolean>;
    setSelectorTwoProps?: Setter<SelectorProps>;
    selectorTwoProps?: Accessor<SelectorProps>;
    noButtonAnimation?: boolean;
}
export declare const DatePicker: (props: DatePickerProps) => import("solid-js").JSX.Element;
