import { Signal, WritableSignal } from '@angular/core';
/**
 * Enum for days of the week
 * @readonly
 * @enum {number}
 */
export declare const EuiCalendarDayOfWeek: {
    MONDAY: number;
    TUESDAY: number;
    WEDNESDAY: number;
    THURSDAY: number;
    FRIDAY: number;
    SATURDAY: number;
    SUNDAY: number;
};
/**
 * @description
 * Interface for defining action options in the day header.
 */
export interface EuiCalendarDayHeaderActionOption {
    label: string;
    callback: (e: any) => void;
    id: string;
}
/**
 * @description
 * Interface for defining a day in the calendar.
 */
export interface EuiCalendarDay {
    /** Unique identifier for the day */
    id: number;
    /** Date object representing the day */
    date: Date;
    /** Indicates if the day is today (based on user's Machine day) */
    isToday?: boolean;
    /** Indicates if the day a weekend (Saturday, Sunday) */
    isWeekend?: boolean;
    /** Metadata associated with the day */
    metadata: Signal<EuiCalendarEvent[]>;
}
/**
 * @description
 * Interface for defining an event in the calendar.
 */
export interface EuiCalendarEvent {
    id: string;
    date: WritableSignal<Date>;
    label: WritableSignal<string>;
    subLabel?: WritableSignal<string>;
    type?: WritableSignal<string>;
}
/**
 * Defines the direction of calendar navigation.
 */
export declare enum EuiCalendarNavigationDirection {
    Previous = "previous",
    Next = "next"
}
/**
 * Event emitted when the calendar navigation buttons are clicked.
 */
export interface EuiCalendarNavigationEvent {
    /**
     * The direction of navigation, either 'previous' or 'next'.
     */
    direction: EuiCalendarNavigationDirection;
    /**
     * The current date before navigation.
     */
    current: Date;
    /**
     * The new date after navigation.
     */
    new: Date;
    /**
     * The current mode of the calendar (monthly, weekly, or daily).
     */
    mode: EuiCalendarMode;
}
/**
 * Defines the mode of the calendar header.
 */
export declare enum EuiCalendarMode {
    Monthly = "monthly",
    Weekly = "weekly",
    Daily = "daily"
}
export interface EuiCalendarHeaderContext {
    /**
     * Mode of the calendar header (monthly, weekly, or daily).
     */
    currentDate: Date;
    /**
     * Mode of the calendar header (monthly, weekly, or daily).
     */
    mode: EuiCalendarMode;
    /**
     * Callback function when navigate to the previous month/week/day.
     */
    previous: () => void;
    /**
     * Callback function when navigate to the next month/week/day.
     */
    next: () => void;
    /**
     * Callback function when navigate to today's date.
     */
    cbToday: () => void;
    /**
     * Formatted date string for display in the header (e.g., "September 2023" or "Week 36, 2023").
     * It is formatted based on the current mode.
     */
    formattedDate: string;
    /**
     * True if the current date is today.
     */
    isToday: boolean;
}
export declare enum EuiCalendarEventType {
    primary = "primary",
    success = "success",
    warning = "warning",
    danger = "danger",
    info = "info"
}
//# sourceMappingURL=models.d.ts.map