import { AgentMessage, AgentMessageType } from "@vertesia/common";
import { VertesiaClient } from "@vertesia/client";
export declare function insertMessageInTimeline(arr: AgentMessage[], m: AgentMessage): void;
/**
 * Check if a conversation is still in progress
 * This function checks the main workstream status to determine if the conversation is complete
 * For multi-workstream scenarios, we keep streaming until the main workstream is complete
 */
export declare const DONE_STATES: AgentMessageType[];
export declare function isInProgress(messages: AgentMessage[]): boolean;
export declare const formatRelative: (ts: number | string) => string;
/**
 * Extract the workstream ID from a message
 * @param message The agent message to analyze
 * @returns The workstream ID (defaults to 'main' if none found)
 */
export declare function getWorkstreamId(message: AgentMessage): string;
/**
 * Get a map of workstream IDs to their completion status
 * @param messages List of agent messages
 * @returns Map of workstream IDs to completion status ('pending', 'in_progress', or 'completed')
 */
export declare function getWorkstreamStatusMap(messages: AgentMessage[]): Map<string, "pending" | "in_progress" | "completed">;
export declare function getConversationUrl(vertesia: VertesiaClient, workflowRunId: string): Promise<string>;
//# sourceMappingURL=utils.d.ts.map