import type { Child } from "./localServe.js"; /** How `agency local serve` starts a model process: the options every * process gets, and the two ways its output can go. */ /** Where a model process's output goes: to this terminal, or to a pipe * the caller reads. */ export type ChildOutput = "inherit" | "pipe"; /** The options every model process is started with. A piped process is * told not to buffer, because Python writes in blocks when its output is * not a terminal, and its lines would arrive late. */ export declare function spawnOptions(output: ChildOutput): { stdio: ["pipe", ChildOutput, ChildOutput]; env: Record; }; export declare function realSpawn(python: string, args: string[]): Child; /** Starts a model process whose output goes to `log`, a line at a time. * The pipes are always read, whatever `log` does with the lines: a * process whose pipe fills up stops. */ export declare function pipedSpawn(log: (line: string) => void): (python: string, args: string[]) => Child;