/**
 * CalendarGrid
 *
 * Pure presentational weekly calendar grid molecule.
 * No entity binding, no event bus, no translations.
 * Composes DayCell and TimeSlotCell atoms into a 7-day grid.
 */
import React from "react";
import type { EventEmit, EventPayload, EntityCollection } from "@almadar/core";
export type CalendarEvent = {
    id: string;
    title: string;
    startTime: string | Date;
    endTime?: string | Date;
    color?: string;
};
/**
 * Number of day columns rendered at once. Matches the responsiveness-
 * audit tiers exactly: 1 day on mobile (≤640), 3 on tablet (641–1024),
 * 7 on laptop+ (≥1025).
 */
export type CalendarDayWindow = 1 | 3 | 7;
export interface CalendarGridProps {
    /** Start of the week (defaults to current week's Monday) */
    weekStart?: Date;
    /** Time slot labels (defaults to 09:00-17:00) */
    timeSlots?: string[];
    /** Events to display on the grid */
    events?: EntityCollection<CalendarEvent>;
    /** Called when a time slot is clicked */
    onSlotClick?: (day: Date, time: string) => void;
    /** Called when a day header is clicked */
    onDayClick?: (day: Date) => void;
    /** Called when an event is clicked */
    onEventClick?: (event: CalendarEvent) => void;
    /** Additional CSS classes */
    className?: string;
    /** Event emitted on long-press of a time slot: UI:{longPressEvent} with { date, time, ...longPressPayload } */
    longPressEvent?: EventEmit<{
        date: string;
        time?: string;
    }>;
    /** Additional payload for long-press events */
    longPressPayload?: EventPayload;
    /** Event emitted on swipe left (next week): UI:{swipeLeftEvent} */
    swipeLeftEvent?: EventEmit<Record<string, never>>;
    /** Event emitted on swipe right (prev week): UI:{swipeRightEvent} */
    swipeRightEvent?: EventEmit<Record<string, never>>;
    /**
     * Override the viewport-driven day window. `'auto'` (default) tracks
     * `window.innerWidth` — 1 day on mobile, 3 on tablet, 7 on laptop+.
     * Pass an explicit number to force a fixed window (useful for print
     * layouts or screenshot tests).
     */
    dayWindow?: CalendarDayWindow | 'auto';
}
export declare function CalendarGrid({ weekStart, timeSlots, events, onSlotClick, onDayClick, onEventClick, className, longPressEvent, longPressPayload, swipeLeftEvent, swipeRightEvent, dayWindow, }: CalendarGridProps): React.JSX.Element;
export declare namespace CalendarGrid {
    var displayName: string;
}
