
import { MessageRole } from "../enums.cjs";
import { ActionExecutionMessageInput, AgentStateMessageInput, ImageMessageInput, ResultMessageInput, TextMessageInput } from "../../inputs/message.input.cjs";
import { MessageStatus } from "../message-status.type.cjs";
import { BaseMessageOutput } from "../copilot-response.type.cjs";

//#region src/graphql/types/converted/index.d.ts
type MessageType = "TextMessage" | "ActionExecutionMessage" | "ResultMessage" | "AgentStateMessage" | "ImageMessage";
declare class Message {
  type: MessageType;
  id: BaseMessageOutput["id"];
  createdAt: BaseMessageOutput["createdAt"];
  status: MessageStatus;
  constructor(props: any);
  isTextMessage(): this is TextMessage;
  isActionExecutionMessage(): this is ActionExecutionMessage;
  isResultMessage(): this is ResultMessage;
  isAgentStateMessage(): this is AgentStateMessage;
  isImageMessage(): this is ImageMessage;
}
type MessageConstructorOptions = Partial<Message>;
type TextMessageConstructorOptions = MessageConstructorOptions & TextMessageInput;
declare class TextMessage extends Message implements TextMessageConstructorOptions {
  content: TextMessageInput["content"];
  parentMessageId: TextMessageInput["parentMessageId"];
  role: TextMessageInput["role"];
  type: "TextMessage";
  constructor(props: TextMessageConstructorOptions);
}
declare class ActionExecutionMessage extends Message implements Omit<ActionExecutionMessageInput, "arguments" | "scope"> {
  type: MessageType;
  name: string;
  arguments: Record<string, any>;
  parentMessageId?: string;
}
declare class ResultMessage extends Message implements ResultMessageInput {
  type: MessageType;
  actionExecutionId: string;
  actionName: string;
  result: string;
  static encodeResult(result: any, error?: {
    code: string;
    message: string;
  } | string | Error): string;
  static decodeResult(result: string): {
    error?: {
      code: string;
      message: string;
    };
    result: string;
  };
  hasError(): boolean;
  getError(): {
    code: string;
    message: string;
  } | undefined;
}
declare class AgentStateMessage extends Message implements Omit<AgentStateMessageInput, "state"> {
  type: MessageType;
  threadId: string;
  agentName: string;
  nodeName: string;
  runId: string;
  active: boolean;
  role: MessageRole;
  state: any;
  running: boolean;
}
declare class ImageMessage extends Message implements ImageMessageInput {
  type: MessageType;
  format: string;
  bytes: string;
  role: MessageRole;
  parentMessageId?: string;
}
//#endregion
export { ActionExecutionMessage, Message, ResultMessage, TextMessage };
//# sourceMappingURL=index.d.cts.map