/**
 * Timeline Organism Component
 *
 * A vertical timeline component for displaying chronological events.
 * Composes atoms and molecules for layout, uses CSS variables for theming.
 *
 * Orbital Component Interface Compliance:
 * - Entity binding with auto-fetch when entity is a string
 * - Event emission via useEventBus (UI:* events)
 * - isLoading and error state props
 * - className for external styling
 */
import React from "react";
import type { EventKey } from "@almadar/core";
import type { EntityRow } from "@almadar/core";
import type { LucideIcon } from "lucide-react";
export type TimelineItemStatus = "complete" | "active" | "pending" | "error";
export interface TimelineItem {
    /** Unique identifier */
    id: string;
    /** Item title */
    title: string;
    /** Item description */
    description?: string;
    /** Timestamp string */
    date?: string;
    /** Status indicator */
    status?: TimelineItemStatus;
    /** Icon override */
    icon?: LucideIcon;
    /** Additional metadata tags */
    tags?: readonly string[];
}
export interface TimelineAction {
    label: string;
    event?: EventKey;
    navigatesTo?: string;
    variant?: "primary" | "secondary" | "ghost";
}
export interface TimelineProps {
    /** Additional CSS classes */
    className?: string;
    /** Loading state indicator */
    isLoading?: boolean;
    /** Error state */
    error?: Error | null;
    /**
     * Schema entity data typed against @almadar/core's EntityRow. Items from
     * `entity` are normalised into `items` when `items` is omitted. UI-specific
     * TimelineItem fields (`icon`, callbacks) cannot round-trip through the
     * event bus, so decorative stories that need them pass `items` directly.
     */
    entity?: EntityRow | readonly EntityRow[];
    /** Timeline title */
    title?: string;
    /** Timeline items */
    items?: readonly TimelineItem[];
    /** Fields to display */
    fields: readonly string[];
    /** Actions per item */
    itemActions?: readonly TimelineAction[];
}
export declare const Timeline: React.FC<TimelineProps>;
