import type { PatternDecision, RenderedArtifact, SkillContext, ToolSelectionContext } from './types.js';
import type { NormalizedWorkflowSpec } from '../spec-intake/types.js';
interface RenderWorkflowInput {
    spec: NormalizedWorkflowSpec;
    pattern: PatternDecision;
    skills: SkillContext;
    artifactPath?: string;
    toolSelection?: ToolSelectionContext;
}
export declare function renderWorkflow(input: RenderWorkflowInput): RenderedArtifact;
/**
 * Derive the test command for a generated workflow based on the spec.
 *
 * Resolution order:
 *
 *   1. Explicit `vitest`/`npm test` acceptance gate → `mapAcceptanceGateToCommand`.
 *   2. Test-file targets in `spec.targetFiles` that are reachable from the
 *      generated workflow's cwd → `npx vitest run <files>`. Cross-repo
 *      paths (e.g. `../sibling-repo/...` or `sibling-repo/packages/...`
 *      where the first segment is not a recognized in-repo source root)
 *      are dropped because the generated workflow runs in a single
 *      repo's cwd and vitest's include glob cannot reach them. Without
 *      this filter, a spec that legitimately spans multiple repos
 *      produces a `final-hard-validation` gate that always fails with
 *      "No test files found, exit 1", and the auto-fix loop burns its
 *      budget chasing a phantom artifact path.
 *   3. Source-file targets that live under monorepo workspaces
 *      (`packages/<pkg>/`, `apps/<pkg>/`, `services/<pkg>/`, including
 *      scoped `packages/@scope/<pkg>/` layouts) → one
 *      `npm test --workspace=<pkg>` per unique workspace, chained with
 *      `&&`. This keeps validation focused on the spec's declared scope
 *      so unrelated failures in sibling packages cannot block the
 *      generated workflow's final-hard-validation gate.
 *   4. Fallback for any other target shape → `npx vitest run`.
 *
 * Exported so the master workflow renderer can reuse the same logic
 * instead of forking another implementation.
 */
export declare function deriveTestCommand(spec: NormalizedWorkflowSpec): string;
export declare function executableAcceptanceCommandsForSpec(spec: NormalizedWorkflowSpec): string[];
export declare function usesOnlyListedValidationCommands(spec: NormalizedWorkflowSpec): boolean;
export {};
