import { HTMLAttributes } from "react";
export declare type voidFunction = () => void;
export declare const ENGLISH = "en";
export declare const NEPALI = "ne";
export declare const BS = "BS";
export declare const AD = "AD";
export declare type localeType = "en" | "ne";
export interface NepaliDatePickerOptions {
closeOnSelect: boolean;
calenderLocale: localeType;
valueLocale: localeType;
}
export interface IContextProviderProps {
minYear?: number;
children: React.ReactNode;
maxYear?: number;
}
export interface INepaliDatePicker {
value: string;
className: HTMLAttributes["className"];
inputClassName: HTMLAttributes["className"];
onChange: (date: string) => void;
onSelect?: (value: string) => void;
options: NepaliDatePickerOptions;
minYear?: number;
maxYear?: number;
todayIfEmpty?: boolean;
}
export interface NepaliDatePickerProps {
value?: INepaliDatePicker["value"];
className?: INepaliDatePicker["className"];
inputClassName?: INepaliDatePicker["inputClassName"];
onChange?: INepaliDatePicker["onChange"];
onSelect?: INepaliDatePicker["onSelect"];
options?: {
closeOnSelect?: NepaliDatePickerOptions["closeOnSelect"];
calenderLocale?: NepaliDatePickerOptions["calenderLocale"];
valueLocale?: NepaliDatePickerOptions["valueLocale"];
};
minYear?: INepaliDatePicker["minYear"];
maxYear?: INepaliDatePicker["maxYear"];
todayIfEmpty?: boolean;
}
export interface NepaliDatepickerEvents {
change: (value: string) => void;
yearSelect?: (year: number) => void;
monthSelect?: ({ year, month }: YearMonth) => void;
daySelect?: ({ year, month, day }: YearMonthDate) => void;
previousMonthSelect?: ({ month, year }: YearMonth) => void;
nextMonthSelect?: ({ year, month }: YearMonth) => void;
todaySelect?: ({ year, month, day }: YearMonthDate) => void;
}
export interface ParsedDate {
bsYear: number;
bsMonth: number;
bsDay: number;
weekDay: number;
adDate: Date;
numberOfDaysInBSMonth: number;
firstAdDayInBSMonth: Date;
}
export declare const parsedDateInitialValue: ParsedDate;
export interface SplittedDate {
year: number;
month: number;
day: number;
}
export declare type YearMonthDate = SplittedDate;
export interface YearMonth {
year: number;
month: number;
}