export interface DayPickerGridCell { /** Column index of the cell within the week (0–6). */ col: number; /** * Day number (1–31). May be `undefined` if the cell is outside the * current month and overflow days are not included. */ day: number | undefined; /** Month index (0–11) the cell belongs to. */ month: number; /** Full year for this cell. */ year: number; /** Whether this day belongs to the currently rendered month. */ inCurrentMonth: boolean; } export interface DayPickerGridRow { /** Logical index of the row within the generated grid. */ row: number; /** Array of cells for this row. */ data: DayPickerGridCell[]; } export interface DayPickerGridOptions { /** Base year. Defaults to the current year. */ year?: number; /** Base month index (0–11). Defaults to the current month. */ month?: number; /** * Logical month offset relative to (year, month). * For example: offset = +1 → next month, offset = -1 → previous month. * @default 0 */ offset?: number; /** Number of rows in the grid. Usually 5 or 6. @default 6 */ rows?: number; /** Number of columns. Typically 7. @default 7 */ cols?: number; /** * Whether to include days from the previous and next months to fill * all grid cells. If false, overflow cells contain undefined days. * @default false */ includeOverflowDays?: boolean; /** * Defines the first day of the week. * 0 = Sunday, 1 = Monday, … 6 = Saturday. * @default 1 (Monday) */ weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6; } /** * Generates a complete calendar grid for a given month. * * Supports: * - month shifting via `offset` * - overflow day rendering (previous/next month) * - custom week start (e.g., Monday vs Sunday) * - fully custom grid sizes (rows × cols) * * Returns a matrix of DayPickerGridRow objects, each containing * visible or overflow days, month/year info, and flags indicating * whether a cell belongs to the current month. * * @example * // Generate the UI matrix for April 2025 * createDayPickerGrid({ year: 2025, month: 3 }); * * @example * // Sunday-based week layout with overflow days * createDayPickerGrid({ * year: 2025, * month: 0, * weekStartsOn: 0, * includeOverflowDays: true, * }); */ export declare const createDayPickerGrid: (options?: DayPickerGridOptions) => DayPickerGridRow[];