import { IAgentWS } from "./interfaces";
import { ConnectionStatus, ACPMessageSessionResponse, InviteStatus } from "./websocket";
/**
 * AgentWS类
 * 提供基于WebSocket的智能体通信功能，封装了WebSocket连接、会话创建和消息传递等操作
 */
declare class AgentWS implements IAgentWS {
    /** 智能体ID */
    private aid;
    /** WebSocket客户端实例 */
    private msgClient;
    /** 心跳服务器地址（未使用） */
    private heartbeatServer;
    /** 消息服务器地址 */
    private messageServer;
    /** 消息签名 */
    private messageSignature;
    private statusChangeCallback;
    private messageCallback;
    /**
     * 构造函数
     * @param aid 智能体ID
     * @param messageServer 消息服务器地址
     * @param messageSignature 消息签名
     */
    constructor(aid: string, messageServer: string, messageSignature: string);
    /**
     * 连接到WebSocket服务器
     * @throws Error 当连接失败时抛出错误
     */
    startWebSocket(): Promise<void>;
    /**
     * 快捷连接到指定智能体，自动创建会话并发送邀请
     * @param receiver 要连接的智能体ID
     * @param onSessionCreated 会话创建成功回调（可选）
     * @param onInviteStatus 邀请状态回调（可选）
     */
    connectTo(receiver: string, onSessionCreated?: ((sessionInfo: ACPMessageSessionResponse) => void) | null, onInviteStatus?: ((status: InviteStatus) => void) | null): void;
    /**
     * 创建会话
     * @param cb 会话创建回调函数
     */
    createSession(cb: (res: ACPMessageSessionResponse) => void): void;
    /**
     * 邀请智能体加入会话
     * @param receiver 接收者智能体ID
     * @param sessionId 会话ID
     * @param identifyingCode 邀请码
     * @param cb 邀请状态回调函数（可选）
     */
    invite(receiver: string, sessionId: string, identifyingCode: string, cb?: (((status: InviteStatus) => void) | null)): void;
    /**
     * 发送消息
     * @param msg 要发送的消息内容
     * @param to 接收者智能体ID
     * @param sessionId 会话ID
     * @param identifyingCode 邀请码
     */
    send(msg: string, to: string, sessionId: string, identifyingCode: string): void;
    /**
     * 设置WebSocket连接状态变更的监听函数
     * @param cb 状态变更回调函数
     */
    onStatusChange(cb: (status: ConnectionStatus) => void): void;
    /**
     * 设置消息接收的监听函数
     * @param cb 消息接收回调函数
     */
    onMessage(cb: (message: any) => void): void;
    /**
     * 断开WebSocket连接
     */
    disconnect(): void;
}
export { AgentWS };
