import { HookRegistry } from "./hooks.js"; import { type FileAwarenessTracker } from "./file-awareness.js"; import type { McpServerConfig } from "./plugin-types.js"; import { PromptRegistry } from "./prompts.js"; import { ToolRegistry } from "./tools.js"; import type { ChatMessage } from "./types.js"; export type DisposeHook = () => void | Promise; export type RunContextLogger = { error(message: string, error?: unknown): void; }; export type CreateRunContextOptions = { activeSkills?: string[]; logger?: RunContextLogger; cwd?: string; fileAwareness?: FileAwarenessTracker; }; export declare class RunContext { #private; readonly messages: ChatMessage[]; readonly tools: ToolRegistry; readonly prompts: PromptRegistry; readonly hooks: HookRegistry; readonly session: Map; readonly mcpServers: McpServerConfig[]; readonly activeSkills: string[]; readonly fileAwareness: FileAwarenessTracker; readonly abortController: AbortController; readonly childRuns: Set>; constructor(options?: CreateRunContextOptions); get logger(): RunContextLogger; registerDisposeHook(hook: DisposeHook): void; trackChildRun(childRun: Promise): Promise; getChildRunCount(): number; dispose(): Promise; } export declare function createRunContext(options?: CreateRunContextOptions): RunContext;