import type { EventCategoryId, VenueId } from "@riverbankcms/core";
import type { SystemBlockDefinition } from "../../registry";
import { type SectionStylesContent } from "../../fields/boxStyles";
import { type BlockConfig, type DefinedBlockManifest } from "../../defineBlock";
import type { DisplayMode, EventLayout, ColumnOption, WeekStart, FilterAutoShow, CalendarTabViews, ButtonVariant, EventBlockKind, EventScheduleScope, EventSurfacePreset, EventSurfaceScope } from "./shared/types";
import { eventCalendarBlockRuntime } from "../../runtime/nodes/events/EventCalendar.interactive";
export declare function normalizeEventCalendarContent(content: unknown): EventCalendarContent;
/**
 * Event Calendar Block
 *
 * Displays events in multiple view modes with optional filtering.
 *
 * Display Modes:
 * - Combined (default): Tabbed view with List + Calendar tabs
 * - Month: Full month calendar grid
 * - Week: Week calendar view
 * - List: Chronological list with load-more pagination
 *
 * Features:
 * - Category, staff, and venue filtering (list views)
 * - Interactive calendar navigation (prev/next/today)
 * - Pre-fetches events for smooth navigation
 * - Configurable week start day
 * - Theme-aware styling
 */
export declare const eventCalendarManifest: DefinedBlockManifest<BlockConfig>;
export type EventCalendarContent = {
    heading?: string | null;
    description?: unknown;
    displayMode?: DisplayMode | null;
    listLayout?: EventLayout | null;
    listColumns?: ColumnOption | null;
    layout?: EventLayout | null;
    columns?: ColumnOption | null;
    eventsPerPage?: "6" | "12" | "24" | null;
    compactEventsPerPage?: "10" | "20" | "30" | null;
    loadMoreText?: string | null;
    startOfWeek?: WeekStart | null;
    calendarTabViews?: CalendarTabViews | null;
    showFilters?: boolean | null;
    showCategoryFilter?: FilterAutoShow | null;
    showVenueFilter?: boolean | null;
    showStaffFilter?: boolean | null;
    kind?: EventBlockKind | null;
    eventSurface?: EventSurfaceScope | null;
    filterEventPresets?: readonly EventSurfacePreset[] | null;
    scheduleScope?: EventScheduleScope | null;
    filterCategoryIds?: readonly EventCategoryId[] | null;
    filterStaffMemberId?: string | null;
    filterVenueId?: VenueId | null;
    buttonVariant?: ButtonVariant | null;
    buttonText?: string | null;
    showCapacity?: boolean | null;
    emptyMessage?: string | null;
    _sectionStyles?: SectionStylesContent;
};
export declare const eventCalendarBlockDefinition: SystemBlockDefinition<EventCalendarContent, typeof eventCalendarBlockRuntime>;
