import { Emitter, type EventMap } from "strict-event-emitter"; import type { Message } from "../agents/agent.js"; import type { Context } from "./context.js"; /** * @hidden */ export declare const UserInputTopic = "UserInputTopic"; /** * @hidden */ export declare const UserOutputTopic = "UserOutputTopic"; /** * @hidden */ export interface MessagePayload { role: "user" | "agent"; source?: string; message: Message; context: Context; } /** * @hidden */ export declare function toMessagePayload(payload: Omit | Message, options?: Partial>): Omit; /** * @hidden */ export type MessageQueueListener = (message: MessagePayload) => void; /** * @hidden */ export type Unsubscribe = () => void; interface MessageQueueEventMap extends EventMap { [key: string]: any[]; } /** * @hidden */ export declare class MessageQueue { events: Emitter; publish(topic: string | string[], payload: MessagePayload): void; error(error: Error): void; subscribe(topic: string | string[], listener?: undefined): Promise; subscribe(topic: string | string[], listener: MessageQueueListener): Unsubscribe; subscribe(topic: string | string[], listener?: MessageQueueListener): Unsubscribe | Promise; unsubscribe(topic: string | string[], listener: MessageQueueListener): void; } export {};