import { findADfromBS, findBSfromAD } from '../utils/calendar'; import { ILang, formatADDate } from '../utils/commons'; type LangReturnType = T extends 'en' ? number : string; type ADReturnType = T extends 'en' ? { year: number; month: number; date: number; toString: () => string; } : { year: string; month: string; date: string; toString: () => string; }; interface DateObject { year: number; month: number; date: number; day: number; } interface NepaliDateObject { year: string; month: string; date: string; day: string; } type IManipulateDate = 'day' | 'week' | 'month' | 'year' | 'd' | 'w' | 'm' | 'y'; declare class NepaliDate { #private; constructor(); constructor(date: string | Date | NepaliDate); constructor(year: number, monthIndex: number, date: number); format(format?: string, lang?: ILang): string; toString(lang?: ILang): string; toJson(lang?: 'en'): DateObject; toJson(lang?: 'np'): NepaliDateObject; toAD(lang?: T): ADReturnType; toADasDate(): Date; getFullYear(lang?: T): LangReturnType; getMonth(lang?: T): LangReturnType; getMonthName(lang?: ILang): string; getDate(lang?: T): LangReturnType; getDay(lang?: T): LangReturnType; getDayName(lang?: ILang): string; getDayNameFull(lang?: ILang): string; subtract(value: number, type: IManipulateDate): NepaliDate; add(value: number, type: IManipulateDate): NepaliDate; setDate(date: number): void; setMonth(month: number): void; setFullYear(year: number): void; static now(lang?: ILang): { day: number; toString: () => string; year: number; month: number; date: number; } | { year: string; month: string; date: string; day: string; toString: () => string; }; } export { findADfromBS as toAD, findBSfromAD as toBS, formatADDate }; export default NepaliDate;