import { execFile } from "child_process";
export declare const execFileAsync: typeof execFile.__promisify__;
import { AgencyProgram, GraphNodeDefinition } from "../types.js";
import { AgencyConfig } from "../config.js";
import type { LLMMock } from "../runtime/deterministicClient.js";
export declare function parseTarget(target: string): {
    filename: string;
    nodeName: string;
};
export declare function promptForTarget(): Promise<{
    filename: string;
    nodeName: string;
}>;
export declare function pickANode(nodes: GraphNodeDefinition[]): Promise<string>;
export declare function promptForArgs(selectedNode: GraphNodeDefinition): Promise<{
    hasArgs: boolean;
    argsString: string;
}>;
export type InterruptHandler = {
    action: "approve" | "reject" | "modify" | "resolve";
    modifiedArgs?: Record<string, any>;
    resolvedValue?: any;
    expectedMessage?: string;
};
/**
 * Resolve the compiled .js file for an .agency file from a distDir.
 * Throws if the compiled file doesn't exist.
 */
export declare function resolveCompiledFile(distDir: string, agencyFile: string): string;
type ExecuteNodeArgs = {
    config: AgencyConfig;
    agencyFile: string;
    nodeName: string;
    hasArgs: boolean;
    argsString: string;
    interruptHandlers?: InterruptHandler[];
    timeoutMs?: number;
    signal?: AbortSignal;
    llmMocks?: LLMMock[];
    useTestLLMProvider?: boolean;
};
export declare function executeNodeAsync({ config, agencyFile, nodeName, hasArgs, argsString, interruptHandlers, timeoutMs, signal, llmMocks, useTestLLMProvider, }: ExecuteNodeArgs): Promise<{
    data: any;
    stdout: string;
    stderr: string;
}>;
export declare function safeUnlink(filePath: string): void;
export declare function executeNode(args: ExecuteNodeArgs): {
    data: any;
    [key: string]: any;
};
export { formatTypeHint, formatTypeHintTs, TS_PRIMITIVE_ALIASES, } from "../utils/formatType.js";
type ExecuteJudgeArgs = {
    actualOutput: string;
    expectedOutput: string;
    judgePrompt: string;
    interruptHandlers?: InterruptHandler[];
};
export declare function executeJudgeAsync(agencyFileBaseName: string, { actualOutput, expectedOutput, judgePrompt, interruptHandlers, }: ExecuteJudgeArgs): Promise<{
    score: number;
    reasoning: string;
    stdout: string;
    stderr: string;
}>;
export declare function findRecursively(dirName: string, ext?: string, searched?: string[], ignoreDirs?: string[]): Generator<{
    path: string;
}>;
export declare function getImportsRecursively(filename: string, visited?: Set<string>): string[];
export declare function getImports(program: AgencyProgram): string[];
export type AnyImport = {
    path: string;
    kind: "module" | "node";
};
export declare function getAllImports(program: AgencyProgram): AnyImport[];
