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

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