export interface BsDayCell { /** BS day number, 1-based. */ day: number; /** Full BS key, e.g. "2082-04-15". */ bsKey: string; /** AD equivalent (yyyy-MM-dd). */ adDate: string; /** JS day number 0=Sun…6=Sat of the AD equivalent. */ weekday: number; /** True for Saturday/Sunday (or the configured weekend set). */ weekend: boolean; /** Rich event records from `Events/.json`, if any. */ events: import("../types").CalendarEvent[]; /** True when the day equals the supplied `today` key. */ today: boolean; } export interface BsMonthGrid { year: number; month: number; /** 0=Sun…6=Sat weekday of day 1 (AD equivalent). */ leadingBlanks: number; cells: BsDayCell[]; } /** English + Nepali month names, matching the converter's canonical lists. */ export declare function monthNames(locale?: "en" | "ne"): readonly string[]; /** Days in a BS month from the published month lengths; null when unknown. */ export declare function daysInBsMonth(year: number, month: number): number | null; /** * Builds the grid for one BS month. Resolves leading blanks from the AD * weekday of day 1 and tags each cell with weekend + event flags. Events * failing to load (a year with no `Events/.json`) degrade to * weekend-only marking rather than throwing. */ export declare function buildMonthGrid(year: number, month: number, todayBsKey?: string): Promise; /** Formats a BS key the way humans read it: "15 Shrawan 2082". */ export declare function formatBsLong(bsKey: string, locale?: "en" | "ne"): string; /** Today's BS key (yyyy-M-d) from an AD instant, or undefined when unsupported. */ export declare function todayBsKey(now?: Date): Promise; /** Stable equality for BS keys regardless of zero-padding. */ export declare function sameBsDay(a: string | null | undefined, b: string | null | undefined): boolean; /** Checks an AD yyyy-MM-dd string is a real calendar date. */ export declare function isAdKey(key: string): boolean;