/**
 * WorkspaceRuntimeRegistry — lazy per-workspace cache of skill/memory/prompt-builder runtimes.
 *
 * Previously these four collaborators (`SkillManager`, `SystemPromptBuilder`,
 * `BuiltinMemoryStore`, `MemoryManager`) were created inline inside
 * `AgentManager.getWorkspaceRuntime` and cached in a private Map. They live
 * outside `AgentInstance` because multiple session keys may share a workspace
 * (the runtime is keyed by **resolved workspace path**, not session key).
 *
 * Extracted so:
 *   - `AgentManager` no longer juggles four sibling caches.
 *   - Hot-reload teardown (`clearAll`) lives in one place — there are now no
 *     callers that forget to shut down `memoryManager`.
 *   - Future per-workspace runtimes (e.g. embedding store, vector cache) plug in
 *     through `getOrCreate` without touching `AgentManager`.
 */
import type { Config } from '../../config/schema.js';
import { BuiltinMemoryStore } from '../memory/builtin-memory-store.js';
import type { MemoryManager } from '../memory/manager.js';
import { SkillManager } from '../skills/skill-manager.js';
import { SystemPromptBuilder } from '../prompt/service-prompt-builder.js';
export interface WorkspaceRuntime {
    skillManager: SkillManager;
    systemPromptBuilder: SystemPromptBuilder;
    builtinMemoryStore: BuiltinMemoryStore;
    memoryManager: MemoryManager;
}
export interface WorkspaceRuntimeRegistryOptions {
    /** Effective config snapshot accessor (must always return a value when called). */
    getConfig: () => Config;
    /** Absolute path to the bundled skills directory shared by every workspace. */
    bundledSkillsDir: string;
}
export declare class WorkspaceRuntimeRegistry {
    private readonly runtimes;
    private readonly getConfig;
    private readonly bundledSkillsDir;
    constructor(opts: WorkspaceRuntimeRegistryOptions);
    /** Lazily construct (and cache) the runtime for a resolved workspace path. */
    getOrCreate(resolvedPath: string): WorkspaceRuntime;
    /** Iterate every live workspace runtime (used by skill / config hot-reload). */
    values(): IterableIterator<WorkspaceRuntime>;
    /**
     * Tear down every runtime (shutdown memory providers) and forget the cache.
     * Used by `AgentManager.updateAgentDefaults` and `AgentManager.dispose`.
     */
    clearAll(): Promise<void>;
}
