import { type StepExecutor } from '../lib/headless-runner'; export declare function isSafeSkillId(skillId: string): boolean; /** * Render the template to argv. `{prompt}` and `{skill}` are substituted * token-by-token — each placeholder becomes part of exactly one argument and is * never re-tokenised, because there is no shell to re-tokenise it (the old * string form went through `shell: true`; the prompt travelled in * ES_AGENT_PROMPT to dodge re-scanning, and the whole parent environment went * with it). The prompt is still exported as ES_AGENT_PROMPT for commands that * read it from the environment. */ export declare function renderAgentArgv(argvTemplate: readonly string[], skillId: string, prompt: string): string[]; export interface HeadlessSpawnBoundary { /** Tokenised template (parseCommandTemplate). */ argvTemplate: readonly string[]; /** Resolved argv[0] (resolveSpawnTarget). */ spawnFile: string; spawnPrefixArgs: readonly string[]; /** The allowlisted child environment (buildChildEnv). */ childEnv: Record; cwd: string; } export declare function buildSpawnExecutor(boundary: HeadlessSpawnBoundary, timeoutSeconds: number): StepExecutor; /** * Resolve everything the executor needs BEFORE the first step: tokenise the * template, resolve argv[0], classify trust, gate, and build the environment. * Any failure is a refusal with the reason — nothing spawns. */ export declare function prepareHeadlessBoundary(params: { agentCommand: string; cwd: string; parentEnv: NodeJS.ProcessEnv; passEnv?: string[]; }): { ok: true; boundary: HeadlessSpawnBoundary; lines: string[]; } | { ok: false; error: string; lines: string[]; }; export declare function workflowRunCommand(name: string, options: { file?: string; agentCmd?: string; yes?: boolean; dryRun?: boolean; maxSteps?: string; stepTimeout?: string; /** Environment names passed through to the agent BY NAME (`--pass-env`, repeatable). */ passEnv?: string[]; }): Promise; //# sourceMappingURL=orchestrate-run-workflow.d.ts.map