import { type RunningChildProcess } from './child-process.js'; import { ControllerAgentRuntime } from './provider-runtime.js'; import { type AgentRuntimeFollowupInput, type AgentRuntimeFollowupResult, type AgentRuntimeInput, type AgentRuntimeResult, type PiAgentProviderConfig } from './contract.js'; export declare function piLaunchArgs(providerArgs: readonly string[], options: { model?: string; reasoningEffort?: string; sessionId: string; systemPromptFilePath?: string; }): string[]; export declare function piLaunchEnvironment(env: NodeJS.ProcessEnv, machineEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv; export declare class PiAgentRuntime extends ControllerAgentRuntime { readonly command: string; readonly env: Record | undefined; readonly kind = "pi"; private readonly config; private readonly providerArgs; constructor(config: PiAgentProviderConfig, command: string, providerArgs?: readonly string[]); run(input: AgentRuntimeInput): Promise; appendToActiveRun(input: AgentRuntimeFollowupInput): Promise; private ensureController; } declare class PiRpcController { private readonly child; private bootstrapInput; private readonly configuredModel; private readonly activeToolIds; private readonly lines; private readonly pending; private readonly quiescentWaiters; private readonly usageCaptureId; private usageSequence; private contextWindow?; private currentTurn?; private initialized?; private latestUsage?; private reportedModel?; private turnCompletion?; readonly completion: Promise<{ stdout: string; stderr: string; }>; sessionId: string; constructor(child: RunningChildProcess, bootstrapInput: AgentRuntimeInput, sessionId: string, configuredModel: string | undefined); initialize(input: AgentRuntimeInput): Promise; startTurn(input: AgentRuntimeInput, prompt: string): Promise; steer(prompt: string): Promise; cancelActiveTurn(): Promise; acceptStdoutChunk(chunk: string): Promise; acceptStderrChunk(chunk: string): Promise; kill(signal?: NodeJS.Signals): void; snapshot(): import("../../shared/snapshot.js").ProviderChildHealthSnapshot; isQuiescent(): boolean; waitForQuiescent(signal?: AbortSignal): Promise; private effects; private initializeSession; private request; private handleResponse; private handleEvent; private handleAssistantMessage; private handleToolStart; private handleToolEnd; private abortCurrentTurn; private clearCurrentTurn; private finishCurrentTurn; private resolveQuiescentWaitersIfReady; private fail; } export {}; //# sourceMappingURL=pi.d.ts.map