import type { Event, WorkflowRun } from '@workflow/world'; import { type ExactIdSearchResult, type ExactWorkflowSearchIdKind } from '../lib/exact-event-search-id'; export interface DurationInfo { /** Time from created → started (ms) */ queued?: number; /** Time from started → completed/failed/cancelled (ms) */ ran?: number; } /** * Build a map from correlationId → duration info by diffing * created ↔ started (queued) and started ↔ completed/failed/cancelled (ran). * Also computes run-level durations under the key '__run__'. */ export declare function buildDurationMap(events: Event[]): Map; interface EventsListProps { events: Event[] | null; run?: WorkflowRun | null; onLoadEventData?: (event: Event) => Promise; hasMoreEvents?: boolean; isLoadingMoreEvents?: boolean; onLoadMoreEvents?: () => Promise | void; /** When provided, signals that decryption is active (triggers re-load of expanded events) */ encryptionKey?: Uint8Array; /** When true, shows a loading state instead of "No events found" for empty lists */ isLoading?: boolean; /** Sort order for events. Defaults to 'asc'. */ sortOrder?: 'asc' | 'desc'; /** Called when the user changes sort order. When provided, the sort dropdown is shown * and the parent is expected to refetch from the API with the new order. */ onSortOrderChange?: (order: 'asc' | 'desc') => void; /** Called when the user clicks the Decrypt button. */ onDecrypt?: () => void; /** Whether the encryption key is currently being fetched. */ isDecrypting?: boolean; /** Run-level hint: the run contains encrypted data (from probe). */ hasEncryptedData?: boolean; /** Fetch events for an exact correlation or event ID. */ onExactIdSearch?: (id: string, kind: ExactWorkflowSearchIdKind, signal?: AbortSignal) => Promise; } export declare function EventListView(props: EventsListProps): import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=event-list-view.d.ts.map