import type { PhaseTimingData, RejectionFeedbackData } from '../../../app/actions/get-feature-phase-timings.js';
export interface ActivityTabProps {
    timings: PhaseTimingData[] | null;
    loading: boolean;
    error: string | null;
    rejectionFeedback?: RejectionFeedbackData[];
}
/**
 * A single iteration in the lifecycle timeline.
 *
 * An iteration represents one cycle of work:
 *   started/resumed → phase work → rejected/completed/failed
 *
 * Each rejected iteration has associated rejection feedback.
 */
export interface TimelineIteration {
    /** 1-based iteration number */
    number: number;
    /** The timing events in this iteration */
    timings: PhaseTimingData[];
    /** If this iteration ended with rejection, the feedback message */
    rejectionMessage?: string;
    /** If this iteration ended with rejection, any attachments */
    rejectionAttachments?: string[];
}
/**
 * Build a lifecycle-aware timeline from flat timing events and rejection feedback.
 *
 * Splits the timing stream at run:rejected boundaries to produce iterations.
 * Each rejection feedback entry is matched to its iteration by index.
 *
 * When there are more feedback entries than run:rejected events in the timings,
 * synthetic run:rejected + run:resumed events are appended to ensure every
 * feedback entry is represented.
 */
export declare function buildLifecycleTimeline(timings: PhaseTimingData[], feedback?: RejectionFeedbackData[]): TimelineIteration[];
export declare function ActivityTab({ timings, loading, error, rejectionFeedback }: ActivityTabProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=activity-tab.d.ts.map