import React from 'react';
import type { PublicEvent } from '../../../../blocks/events/shared/types';
/**
 * Modal state - either closed, showing a single event, or showing all events for a day
 */
type ModalState = {
    type: 'closed';
} | {
    type: 'event';
    event: PublicEvent;
} | {
    type: 'day';
    date: Date;
    events: PublicEvent[];
};
interface EventModalContextValue {
    modalState: ModalState;
    openEventModal: (event: PublicEvent) => void;
    openDayModal: (date: Date, events: PublicEvent[]) => void;
    closeModal: () => void;
}
type EventModalProviderProps = {
    children: React.ReactNode;
};
/**
 * EventModalProvider - Provides modal state management for calendar events
 *
 * Wrap your calendar component with this provider to enable event detail modals.
 */
export declare function EventModalProvider({ children }: EventModalProviderProps): React.ReactElement;
/**
 * useEventModal - Hook to access modal state and actions
 *
 * Must be used within an EventModalProvider.
 */
export declare function useEventModal(): EventModalContextValue;
export {};
