package tech.easyflow.ai.chattime.availability;

/**
 * 聊天时工具可用性判定器。
 */
public interface ChatTimeToolAvailabilityResolver {

    /**
     * 当前判定器是否支持指定候选项。
     *
     * @param candidate 聊天工具候选项
     * @return 是否支持
     */
    boolean supports(Object candidate);

    /**
     * 计算候选项在当前聊天上下文中的可用性。
     *
     * @param context 聊天时上下文
     * @param candidate 聊天工具候选项
     * @return 判定结果
     */
    ChatTimeToolAvailabilityDecision resolve(ChatTimeToolAvailabilityContext context, Object candidate);
}
