import { ModelSettings } from "@inkeep/agents-core";
import { z } from "zod";

//#region src/domains/run/tools/distill-conversation-history-tool.d.ts

/**
 * Conversation History Summary Schema - structured object for replacing entire conversation histories
 */
declare const ConversationHistorySummarySchema: z.ZodObject<{
  type: z.ZodLiteral<"conversation_history_summary_v1">;
  session_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
  conversation_overview: z.ZodString;
  user_goals: z.ZodObject<{
    primary: z.ZodString;
    secondary: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
  key_outcomes: z.ZodObject<{
    completed: z.ZodArray<z.ZodString>;
    partial: z.ZodArray<z.ZodString>;
    discoveries: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
  technical_context: z.ZodObject<{
    technologies: z.ZodArray<z.ZodString>;
    configurations: z.ZodArray<z.ZodString>;
    issues_encountered: z.ZodArray<z.ZodString>;
    solutions_applied: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
  conversation_artifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    tool_name: z.ZodString;
    tool_call_id: z.ZodString;
    content_summary: z.ZodString;
    relevance: z.ZodEnum<{
      high: "high";
      medium: "medium";
      low: "low";
    }>;
  }, z.core.$strip>>>;
  conversation_flow: z.ZodObject<{
    major_phases: z.ZodArray<z.ZodString>;
    decision_points: z.ZodArray<z.ZodString>;
    topic_shifts: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
  context_for_continuation: z.ZodObject<{
    current_state: z.ZodString;
    next_logical_steps: z.ZodArray<z.ZodString>;
    important_context: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
}, z.core.$strip>;
type ConversationHistorySummary = z.infer<typeof ConversationHistorySummarySchema>;
/**
 * Distill entire conversation history into a comprehensive summary that can replace the full message history
 */
declare function distillConversationHistory(params: {
  messages: any[];
  conversationId: string;
  summarizerModel: ModelSettings;
  toolCallToArtifactMap?: Record<string, string>;
}): Promise<ConversationHistorySummary>;
//#endregion
export { ConversationHistorySummary, ConversationHistorySummarySchema, distillConversationHistory };