import type { AgentEvent } from "@earendil-works/pi-agent-core"; import type { Provider } from "@earendil-works/pi-ai"; import type { AgentLoopRuntime, PromptRunInput, PromptRunResult } from "./loop.js"; export interface PiCustomModel { api: string; provider: string; baseUrl?: string; } export interface PiAgentLoopRuntimeOptions { /** Default model in `provider/model` or `provider:model` form, e.g. `openai/gpt-4.1`. */ model?: string; /** Dynamic API-key resolver forwarded to pi-agent-core/pi-ai. */ getApiKey?: (provider: string) => Promise | string | undefined; /** Execute tool calls in parallel or sequentially. Defaults to pi-agent-core's parallel mode. */ toolExecution?: "parallel" | "sequential"; /** Custom model definitions for models not in the pi-ai catalog. Keyed by `provider/model`. */ customModels?: Record; /** Pi-native provider objects. When supplied, only these providers are registered. */ providers?: readonly Provider[]; } export declare class PiAgentLoopRuntime implements AgentLoopRuntime { readonly name = "pi-agent-core"; private readonly options; private readonly agents; private readonly models; private readonly callPolicies; constructor(options?: PiAgentLoopRuntimeOptions); runPrompt(input: PromptRunInput): Promise; /** * Dispose of cached Agent instances to free resources. * Call with a sessionId to dispose a specific session, or call * without arguments to dispose all sessions. */ dispose(sessionId?: string): void; private resolvePiModel; private toPiTool; } export declare function createPiAgentLoopRuntime(options?: PiAgentLoopRuntimeOptions): PiAgentLoopRuntime; /** @internal Event bridge kept exported only for package-level protocol tests. */ export declare function emitPiEvent(event: AgentEvent, input: PromptRunInput): Promise; //# sourceMappingURL=pi-loop-runtime.d.ts.map