package tech.easyflow.ai.node.filegeneration;

/**
 * 文档格式渲染器。
 *
 * @author Codex
 * @since 2026-04-18
 */
public interface DocumentRenderer {

    /**
     * 当前渲染器对应的目标格式。
     *
     * @return 目标格式
     */
    TargetFormat getTargetFormat();

    /**
     * 判断当前渲染器是否支持给定输入格式。
     *
     * @param sourceFormat 输入格式
     * @return 是否支持
     */
    boolean supports(SourceFormat sourceFormat);

    /**
     * 执行文档渲染。
     *
     * @param request 已归一化的导出请求
     * @return 导出结果
     */
    FileGenerationResult render(FileGenerationRequest request);
}
