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

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

/**
 * Conversation Summary Schema - structured object for maintaining conversation context
 */
declare const ConversationSummarySchema: z.ZodObject<{
  type: z.ZodLiteral<"conversation_summary_v1">;
  session_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
  high_level: z.ZodString;
  user_intent: z.ZodString;
  decisions: z.ZodArray<z.ZodString>;
  open_questions: z.ZodArray<z.ZodString>;
  next_steps: z.ZodObject<{
    for_agent: z.ZodArray<z.ZodString>;
    for_user: z.ZodArray<z.ZodString>;
  }, z.core.$strip>;
  related_artifacts: z.ZodOptional<z.ZodArray<z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    tool_name: z.ZodString;
    tool_call_id: z.ZodString;
    content_type: z.ZodString;
    key_findings: z.ZodArray<z.ZodString>;
  }, z.core.$strip>>>;
}, z.core.$strip>;
type ConversationSummary = z.infer<typeof ConversationSummarySchema>;
/**
 * Core conversation distillation - takes messages and creates structured summary
 */
declare function distillConversation(params: {
  messages: any[];
  conversationId: string;
  currentSummary?: ConversationSummary | null;
  summarizerModel?: ModelSettings;
  toolCallToArtifactMap?: Record<string, string>;
}): Promise<ConversationSummary>;
//#endregion
export { ConversationSummary, ConversationSummarySchema, distillConversation };