import { FullExecutionContext, MessageContent } from "@inkeep/agents-core";

//#region src/domains/run/stream/ResponseFormatter.d.ts

/**
 * Response formatter that uses the unified ArtifactParser to convert artifact markers
 * into data parts for consistent artifact handling across all agent responses
 */
declare class ResponseFormatter {
  private artifactParser;
  private subAgentId?;
  constructor(executionContext: FullExecutionContext, artifactParserOptions?: {
    sessionId?: string;
    taskId?: string;
    projectId?: string;
    contextId?: string;
    artifactComponents?: any[];
    streamRequestId?: string;
    subAgentId?: string;
    contextWindowSize?: number;
  });
  /**
   * Process structured object response and replace artifact markers with actual artifacts
   */
  formatObjectResponse(responseObject: any, contextId: string): Promise<MessageContent>;
  /**
   * Process agent response and convert artifact markers to data parts
   */
  formatResponse(responseText: string, contextId: string): Promise<MessageContent>;
  /**
   * Count unique artifacts in parts array
   */
  private countUniqueArtifacts;
  /**
   * Log artifacts found in parts to span
   */
  private logArtifacts;
}
//#endregion
export { ResponseFormatter };