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

//#region src/domains/run/tools/distill-conversation-tool.d.ts
declare const ConversationSummarySchema: z.ZodObject<{
  type: z.ZodLiteral<"conversation_summary_v1">;
  session_id: z.ZodNullable<z.ZodString>;
  _fallback: z.ZodNullable<z.ZodBoolean>;
  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.ZodNullable<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>;
declare function distillConversation(params: {
  conversationId: string;
  currentSummary?: ConversationSummary | null;
  summarizerModel?: ModelSettings;
  messageFormatter: (maxChars?: number) => string;
  compressionCycle?: number;
  usageContext?: {
    tenantId: string;
    projectId: string;
    agentId: string;
    generationType: GenerationType;
  };
}): Promise<ConversationSummary>;
//#endregion
export { ConversationSummary, ConversationSummarySchema, distillConversation };