import type { IElementRef, OnCreate, OnDestroy, OnRender } from '@melodicdev/core';
import type { CalendarViewMode, CalendarEvent, CalendarDayCell, CalendarTimeColumn } from './calendar-view.types.js';
/**
 * ml-calendar-view - Full-featured calendar component with month, week, and day views
 *
 * @example
 * ```html
 * <ml-calendar-view .events=${events} view="month"></ml-calendar-view>
 * ```
 *
 * @fires ml:view-change - Emitted when the view mode changes. Detail: { view }
 * @fires ml:date-change - Emitted when the navigated date changes. Detail: { date }
 * @fires ml:event-click - Emitted when a calendar event is clicked. Detail: { event }
 * @fires ml:date-click - Emitted when a date cell is clicked. Detail: { date }
 * @fires ml:add-event - Emitted when the add event button is clicked. Detail: { date? }
 */
export declare class CalendarViewComponent implements IElementRef, OnCreate, OnDestroy, OnRender {
    elementRef: HTMLElement;
    /** Current view mode */
    view: CalendarViewMode;
    /** Navigated date (ISO date string) */
    date: string;
    /** Day the week starts on (0=Sunday, 1=Monday) */
    weekStartsOn: number;
    /** Maximum visible events per day cell in month view */
    maxVisibleEvents: number;
    /** Label for the add event button */
    addButtonText: string;
    /** Hide prev/next navigation arrows */
    hideNav: boolean;
    /** Hide the "Today" button */
    hideTodayButton: boolean;
    /** Hide the view dropdown */
    hideViewSelector: boolean;
    /** Hide the add event button */
    hideAddButton: boolean;
    /** Calendar events (property-only) */
    events: CalendarEvent[];
    /** Whether the view dropdown is open */
    isViewDropdownOpen: boolean;
    /** Check if header-left slot has consumer content */
    get hasHeaderLeftSlot(): boolean;
    /** Check if header-actions slot has consumer content */
    get hasHeaderActionsSlot(): boolean;
    /** Mini calendar state for day view sidebar */
    private _miniCalYear;
    private _miniCalMonth;
    private _hasScrolledToTime;
    private _boundCloseDropdown;
    private get _currentDate();
    onCreate(): void;
    onDestroy(): void;
    onRender(): void;
    get todayMonthAbbrev(): string;
    get todayDayNumber(): number;
    get headerTitle(): string;
    get weekNumber(): number;
    get headerSubtitle(): string;
    get currentIsoDate(): string;
    get weekdayHeaders(): {
        short: string;
        full: string;
    }[];
    get monthGrid(): CalendarDayCell[];
    get weekColumns(): CalendarTimeColumn[];
    get timeSlots(): {
        label: string;
        hour: number;
        minute: number;
    }[];
    get dayColumn(): CalendarTimeColumn;
    get dayEvents(): CalendarEvent[];
    get dayViewDateLabel(): string;
    get miniCalendarTitle(): string;
    get miniCalendarWeekdays(): string[];
    get miniCalendarGrid(): CalendarDayCell[];
    get miniCalendarDots(): Set<string>;
    navigatePrev: () => void;
    navigateNext: () => void;
    goToToday: () => void;
    toggleViewDropdown: () => void;
    setView: (view: CalendarViewMode) => void;
    handleEventClick: (event: CalendarEvent) => void;
    handleDateClick: (iso: string) => void;
    handleAddEvent: () => void;
    handleAddEventOnDate: (iso: string) => void;
    showMoreEvents: (iso: string) => void;
    miniCalPrevMonth: () => void;
    miniCalNextMonth: () => void;
    handleMiniCalSelect: (iso: string) => void;
    private setDate;
}
//# sourceMappingURL=calendar-view.component.d.ts.map