import { type Dispatch, type SetStateAction } from "react";
import { NepaliDate } from "../NepaliDate";
type tpickerContextType = {
    pickerState: {
        minDate?: Date | NepaliDate;
        maxDate?: Date | NepaliDate;
        today: Date;
        isVisible: boolean;
        locale: "en" | "ne";
        /**
         * The Date that is selected
         * @default null
         */
        selectedDate: Date | NepaliDate | null;
        /**
         * The default date used as a label when no valid date is selected
         */
        defaultDate?: Date | NepaliDate;
        /**
         * Month that is currently in view,
         * not always the selected Date's month.
         */
        activeMonth: number;
        /**
         * Year that is in view not always the selected
         * year's month.
         */
        activeYear: number;
        mode: "date" | "month" | "year";
    };
    setPickerState: Dispatch<SetStateAction<tpickerContextType["pickerState"]>>;
};
declare const usePicker: () => {
    updatePickerDay: (day: Date | NepaliDate) => void;
    updatePickerMonth: (month: number) => void;
    togglePickerMode: (toggleIf: tpickerContextType["pickerState"]["mode"], defaultMode: tpickerContextType["pickerState"]["mode"]) => void;
    updatePickerMode: (newMode: tpickerContextType["pickerState"]["mode"]) => void;
    updatePickerYear: (newYear: tpickerContextType["pickerState"]["activeYear"]) => void;
    changePickerLocale: (newLocale: "en" | "ne") => void;
    updatePickerVisiblity: (newVis: boolean) => void;
    getEffectiveMinDate: () => Date;
    getEffectiveMaxDate: () => Date;
    isDateInRange: (date: Date | NepaliDate) => boolean;
    canNavigateToPreviousMonth: () => boolean;
    canNavigateToNextMonth: () => boolean;
    canNavigateToPreviousYear: () => boolean;
    canNavigateToNextYear: () => boolean;
    resetToOriginalState: () => void;
    getDisplayDate: () => Date | NepaliDate | null;
    pickerState: {
        minDate?: Date | NepaliDate;
        maxDate?: Date | NepaliDate;
        today: Date;
        isVisible: boolean;
        locale: "en" | "ne";
        /**
         * The Date that is selected
         * @default null
         */
        selectedDate: Date | NepaliDate | null;
        /**
         * The default date used as a label when no valid date is selected
         */
        defaultDate?: Date | NepaliDate;
        /**
         * Month that is currently in view,
         * not always the selected Date's month.
         */
        activeMonth: number;
        /**
         * Year that is in view not always the selected
         * year's month.
         */
        activeYear: number;
        mode: "date" | "month" | "year";
    };
    setPickerState: Dispatch<SetStateAction<tpickerContextType["pickerState"]>>;
};
declare const PickerProvider: ({ children, minDate, maxDate, defaultDate, defaultLocale, }: {
    children: React.ReactNode;
    minDate?: Date | NepaliDate;
    maxDate?: Date | NepaliDate;
    defaultDate?: Date | NepaliDate;
    defaultLocale?: "AD" | "BS";
}) => import("react/jsx-runtime").JSX.Element;
export { PickerProvider, usePicker, };
