import "../../config-Dcd8WufG.js";
import "../../providerRegistry-BSW4cdkC.js";
import "../../types-BWB8Eif2.js";
import { t as ModelRouter } from "../../router-0L4SOM5H.js";
import { EventEmitter } from "node:events";

//#region src/services/discuss/engine.d.ts
interface Participant {
  id: string;
  name: string;
  model?: string;
  type: "ai" | "human";
  errorCount: number;
  color?: string;
}
interface ChatMessage {
  id: string;
  role: "system" | "user" | "assistant";
  content: string;
  senderId: string;
  timestamp: number;
  mentions?: string[];
}
interface DiscussionConfig {
  topic: string;
  strategy: "random" | "round-robin";
  timeoutMs: number;
  maxErrors: number;
  thinkingTimeMs: number;
}
type DiscussionStatus = "idle" | "discussing" | "paused" | "thinking" | "speaking";
type DiscussionMode = "auto" | "manual";
declare class DiscussionEngine extends EventEmitter {
  #private;
  constructor(router: ModelRouter, config: Partial<DiscussionConfig> & {
    topic: string;
  });
  addParticipant(participant: Omit<Participant, "errorCount">): void;
  removeParticipant(id: string): void;
  get participants(): Participant[];
  get history(): ChatMessage[];
  get currentMessage(): ChatMessage | null;
  get status(): DiscussionStatus;
  get mode(): DiscussionMode;
  get topic(): string;
  get currentSpeakerId(): string | null;
  setMode(mode: DiscussionMode): void;
  updateConfig(config: Partial<DiscussionConfig>): void;
  start(): void;
  pause(): void;
  resume(): void;
  stop(): void;
  interrupt(): void;
  reset(): void;
  injectMessage(senderId: string, content: string): Promise<void>;
  setNextSpeaker(participantId: string): void;
  generateSummary(modelId: string): Promise<string>;
}
//#endregion
export { ChatMessage, DiscussionConfig, DiscussionEngine, DiscussionMode, DiscussionStatus, Participant };