package org.xyzh.ai.client.callback;

/**
 * @description 流式响应回调接口
 * @filename StreamCallback.java
 * @author AI Assistant
 * @copyright xyzh
 * @since 2025-11-04
 */
public interface StreamCallback {

    /**
     * 接收到消息片段
     * @param message 消息内容
     */
    void onMessage(String message);

    /**
     * 消息结束（包含元数据）
     * @param metadata JSON格式的元数据
     */
    void onMessageEnd(String metadata);
    
    /**
     * 接收到Dify原始事件（用于转发完整事件数据）
     * @param eventType 事件类型（如workflow_started、node_started等）
     * @param eventData 完整的事件JSON数据
     */
    default void onEvent(String eventType, String eventData) {
        // 默认实现：不处理
    }

    /**
     * 流式响应完成
     */
    void onComplete();

    /**
     * 发生错误
     * @param error 错误对象
     */
    void onError(Throwable error);
}

