import { AgentExperienceJournal, type AgentContextCandidate, type AgentExperienceEvent } from '../agent-learning/index.js'; import type { PluginContextRequest, PluginDashboardPage, PluginDescriptor, PluginDiagnostic, PluginActionSource, PluginScope, PluginScopeContext, PluginState, PluginStateFile, PluginStateStore, PluginStorage, PluginStorageStore, PluginView } from './types.js'; type PluginScopeTarget = PluginScope | PluginScopeContext; export declare class MemoryPluginStorageStore implements PluginStorageStore { private readonly values; open(pluginId: string, scope: PluginScope, projectId?: string): Promise; } export declare class MemoryPluginStateStore implements PluginStateStore { private state; constructor(initial?: PluginState); read(): Promise; write(state: PluginState): Promise; } export declare class JsonPluginStateStore implements PluginStateStore { private readonly file; constructor(file: PluginStateFile); read(): Promise; write(state: PluginState): Promise; } export interface PluginRuntimeOptions { readonly cometVersion: string; readonly store: PluginStateStore; readonly storage?: PluginStorageStore; readonly config?: Readonly>>>; readonly descriptors: readonly PluginDescriptor[]; readonly journal?: AgentExperienceJournal; /** Scope-specific journals keep user learning recoverable across projects. */ readonly journals?: { readonly user: AgentExperienceJournal; readonly project: AgentExperienceJournal; }; readonly scheduleLearning?: (task: () => Promise) => void | Promise; readonly now?: () => Date; } export declare class PluginRuntime { private readonly cometVersion; private readonly store; private readonly storage; private readonly config; private readonly descriptors; private readonly now; private readonly learningByScope; private readonly learningCoordinators; private readonly active; private readonly diagnosticEntries; private state; constructor(options: PluginRuntimeOptions); reconcileFirstParty(): Promise; list(scope?: PluginScope): Promise; get(id: string): Promise; install(id: string, source?: PluginActionSource): Promise; enable(id: string, target?: PluginScopeContext): Promise; disable(id: string, target?: PluginScopeContext): Promise; uninstall(id: string): Promise; update(id: string, source?: PluginActionSource): Promise; getConfig(id: string): Readonly>; configure(id: string, config: Readonly>): Promise; invoke(id: string, capability: string, input: unknown, scope?: PluginScopeTarget, options?: { readonly throwOnError?: boolean; }): Promise; dispatch(value: AgentExperienceEvent): Promise; private learningAdapters; collectContext(request: PluginContextRequest, scope: PluginScopeTarget): Promise; private replayPendingLearning; resolveContext(id: string, request: PluginContextRequest, scope: PluginScopeTarget, owner?: string): Promise; dashboardPages(scope: PluginScopeTarget): Promise; diagnostics(): PluginDiagnostic[]; private loadScope; private setRecord; private setProjectPause; private record; private view; private requireDescriptor; private requireInstalled; private assertCompatible; private assertUserInitiatedThirdParty; private isCompatible; private activeKey; private disposeActive; private recordExecutionFailure; private ensureState; private persist; private timestamp; } export declare class PluginRuntimeError extends Error { readonly code: 'missing' | 'incompatible' | 'user-action-required'; constructor(message: string, code: 'missing' | 'incompatible' | 'user-action-required'); } export {}; //# sourceMappingURL=plugin-runtime.d.ts.map