package tech.easyflow.core.runtime;

import java.util.List;

public interface ChatRuntimeManager {

    void prepareSession(ChatRuntimeContext context);

    void recordUserMessage(ChatRuntimeContext context, ChatRuntimeMessage message);

    void recordAssistantDelta(ChatRuntimeContext context, ChatRuntimeMessage message);

    void recordAssistantCompleted(ChatRuntimeContext context, ChatRuntimeMessage message);

    void recordFailure(ChatRuntimeContext context, Throwable throwable);

    void recordCompleted(ChatRuntimeContext context);

    List<ChatRuntimeMessage> loadMessages(ChatRuntimeContext context, int limit);
}
