
import { ActionExecutionMessage, ResultMessage, TextMessage } from "../graphql/types/converted/index.cjs";
import { ReplaySubject } from "rxjs";

//#region src/service-adapters/events.d.ts
declare enum RuntimeEventTypes {
  TextMessageStart = "TextMessageStart",
  TextMessageContent = "TextMessageContent",
  TextMessageEnd = "TextMessageEnd",
  ActionExecutionStart = "ActionExecutionStart",
  ActionExecutionArgs = "ActionExecutionArgs",
  ActionExecutionEnd = "ActionExecutionEnd",
  ActionExecutionResult = "ActionExecutionResult",
  AgentStateMessage = "AgentStateMessage",
  MetaEvent = "MetaEvent",
  RunError = "RunError"
}
declare enum RuntimeMetaEventName {
  LangGraphInterruptEvent = "LangGraphInterruptEvent",
  LangGraphInterruptResumeEvent = "LangGraphInterruptResumeEvent",
  CopilotKitLangGraphInterruptEvent = "CopilotKitLangGraphInterruptEvent"
}
type RunTimeMetaEvent = {
  type: RuntimeEventTypes.MetaEvent;
  name: RuntimeMetaEventName.LangGraphInterruptEvent;
  value: string;
} | {
  type: RuntimeEventTypes.MetaEvent;
  name: RuntimeMetaEventName.CopilotKitLangGraphInterruptEvent;
  data: {
    value: string;
    messages: (TextMessage | ActionExecutionMessage | ResultMessage)[];
  };
} | {
  type: RuntimeEventTypes.MetaEvent;
  name: RuntimeMetaEventName.LangGraphInterruptResumeEvent;
  data: string;
};
type RuntimeErrorEvent = {
  type: RuntimeEventTypes.RunError;
  message: string;
  code?: string;
};
type RuntimeEvent = {
  type: RuntimeEventTypes.TextMessageStart;
  messageId: string;
  parentMessageId?: string;
} | {
  type: RuntimeEventTypes.TextMessageContent;
  messageId: string;
  content: string;
} | {
  type: RuntimeEventTypes.TextMessageEnd;
  messageId: string;
} | {
  type: RuntimeEventTypes.ActionExecutionStart;
  actionExecutionId: string;
  actionName: string;
  parentMessageId?: string;
} | {
  type: RuntimeEventTypes.ActionExecutionArgs;
  actionExecutionId: string;
  args: string;
} | {
  type: RuntimeEventTypes.ActionExecutionEnd;
  actionExecutionId: string;
} | {
  type: RuntimeEventTypes.ActionExecutionResult;
  actionName: string;
  actionExecutionId: string;
  result: string;
} | {
  type: RuntimeEventTypes.AgentStateMessage;
  threadId: string;
  agentName: string;
  nodeName: string;
  runId: string;
  active: boolean;
  role: string;
  state: string;
  running: boolean;
} | RunTimeMetaEvent | RuntimeErrorEvent;
type EventSourceCallback = (eventStream$: RuntimeEventSubject) => Promise<void>;
declare class RuntimeEventSubject extends ReplaySubject<RuntimeEvent> {
  constructor();
  sendTextMessageStart({
    messageId,
    parentMessageId
  }: {
    messageId: string;
    parentMessageId?: string;
  }): void;
  sendTextMessageContent({
    messageId,
    content
  }: {
    messageId: string;
    content: string;
  }): void;
  sendTextMessageEnd({
    messageId
  }: {
    messageId: string;
  }): void;
  sendTextMessage(messageId: string, content: string): void;
  sendActionExecutionStart({
    actionExecutionId,
    actionName,
    parentMessageId
  }: {
    actionExecutionId: string;
    actionName: string;
    parentMessageId?: string;
  }): void;
  sendActionExecutionArgs({
    actionExecutionId,
    args
  }: {
    actionExecutionId: string;
    args: string;
  }): void;
  sendActionExecutionEnd({
    actionExecutionId
  }: {
    actionExecutionId: string;
  }): void;
  sendActionExecution({
    actionExecutionId,
    actionName,
    args,
    parentMessageId
  }: {
    actionExecutionId: string;
    actionName: string;
    args: string;
    parentMessageId?: string;
  }): void;
  sendActionExecutionResult({
    actionExecutionId,
    actionName,
    result,
    error
  }: {
    actionExecutionId: string;
    actionName: string;
    result?: string;
    error?: {
      code: string;
      message: string;
    };
  }): void;
  sendAgentStateMessage({
    threadId,
    agentName,
    nodeName,
    runId,
    active,
    role,
    state,
    running
  }: {
    threadId: string;
    agentName: string;
    nodeName: string;
    runId: string;
    active: boolean;
    role: string;
    state: string;
    running: boolean;
  }): void;
}
declare class RuntimeEventSource {
  private eventStream$;
  private callback;
  private errorHandler?;
  private errorContext?;
  constructor(params?: {
    errorHandler?: (error: any, context: any) => Promise<void>;
    errorContext?: any;
  });
  stream(callback: EventSourceCallback): Promise<void>;
}
//#endregion
export { RuntimeEventSource };
//# sourceMappingURL=events.d.cts.map