/**
 * Shared rule utility functions used by both engine.ts and instruction-builder.ts.
 */
import type { WorkflowStep, OutputContractEntry } from '../../models/types.js';
export declare function isDeterministicCondition(condition: string): boolean;
export declare function isDeferredDeterministicCondition(condition: string): boolean;
/**
 * Check whether a step has tag-based rules (i.e., rules that require
 * [STEP:N] tag output for detection).
 *
 * Returns false when every rule can be resolved deterministically
 * or via explicit AI/aggregate handling without tag output.
 */
export declare function hasTagBasedRules(step: WorkflowStep): boolean;
/**
 * Check if a step has only one branch (automatic selection possible).
 * Returns true when rules.length === 1, meaning no actual choice is needed.
 */
export declare function hasOnlyOneBranch(step: WorkflowStep): boolean;
/**
 * Get the auto-selected tag when there's only one branch.
 * Returns the tag for the first rule (e.g., "[STEP:1]").
 */
export declare function getAutoSelectedTag(step: WorkflowStep): string;
/**
 * Get report file names from a step's output contracts.
 */
export declare function getReportFiles(outputContracts: OutputContractEntry[] | undefined): string[];
/**
 * Get report file names that are eligible for Phase 3 status judgment.
 */
export declare function getJudgmentReportFiles(outputContracts: OutputContractEntry[] | undefined): string[];
//# sourceMappingURL=rule-utils.d.ts.map