import { type BsMonthGrid } from "../index"; import { type BsDateSelection, type BsDateString, type BsLocale } from "./props"; export type { BsMonthGrid }; export interface BsPickerControllerOptions { value?: BsDateString | null; initialMonth?: readonly [number, number]; min?: BsDateString; max?: BsDateString; disabledDates?: BsDateString[]; disabledWeekdays?: number[]; locale?: BsLocale; onChange?: (selection: BsDateSelection | null) => void; } export interface BsPickerViewState { viewYear: number | null; viewMonth: number | null; grid: BsMonthGrid | null; loading: boolean; years: number[]; /** Selectable BS months, 1–12 in calendar order (1 = Baisakh). */ months: number[]; /** Localised month names, index-aligned with 1–12. */ monthNames: readonly string[]; /** Months of `viewYear` that have no published data yet — render as disabled. */ disabledMonths: number[]; monthLabel: string; weekdayLabels: readonly string[]; todayKey: string | null; } export declare function isBsKeyDisabled(key: BsDateString | null, opts: Pick, weekdayOf?: (key: BsDateString) => number | undefined): boolean; export declare function createBsPickerController(initial: BsPickerControllerOptions, onState: (state: BsPickerViewState) => void): { setOptions: (opts: BsPickerControllerOptions) => void; open: () => void; stepMonth: (delta: number) => void; setYear: (year: number) => void; setMonth: (month: number) => void; pickDay: (day: number) => Promise; dispose: () => void; };