import type { ProfileName } from '../config.js'; import { AgentSession } from './agentSession.js'; import { type ToolRuntimeObserver, type ToolSuite } from '../core/toolRuntime.js'; export interface CapabilityContext { profile: ProfileName; workspaceContext: string | null; workingDir: string; env: NodeJS.ProcessEnv; } export interface CapabilityContribution { id: string; description?: string; toolSuite?: ToolSuite; toolSuites?: ToolSuite[]; metadata?: Record; dispose?(): void | Promise; } export interface CapabilityModule { id: string; description?: string; create(context: CapabilityContext): CapabilityContribution | CapabilityContribution[] | null | undefined | Promise; } export interface CapabilityManifestEntry { id: string; moduleId: string; description?: string; metadata?: Record; } export interface AgentHostOptions { profile: ProfileName; workspaceContext: string | null; workingDir: string; modules?: CapabilityModule[]; toolObserver?: ToolRuntimeObserver; env?: NodeJS.ProcessEnv; } export declare class AgentHost { private readonly context; private readonly toolObserver?; private readonly modules; private readonly contributions; private readonly contributionOwners; private readonly moduleContributions; private session; private disposed; constructor(options: AgentHostOptions); get profile(): ProfileName; get workspaceContext(): string | null; get workingDir(): string; refreshWorkspaceContext(workspaceContext: string | null): void; loadModules(modules: CapabilityModule[]): Promise; registerModule(module: CapabilityModule): Promise; getSession(): Promise; describeCapabilities(): CapabilityManifestEntry[]; dispose(): Promise; private collectToolSuites; private validateContribution; private assertMutable; private removeModuleContributions; } //# sourceMappingURL=agentHost.d.ts.map