import type { AgentLogger } from "../agent/types.js";
import type { HookRegistry } from "../contracts/hooks.js";
import { type MemoryPrefetchState } from "../runtime/hooks/memory-hooks.js";
import type { BackgroundTaskManager } from "../runtime/infra/background-tasks.js";
import type { TaskStore } from "../runtime/infra/task-runtime.js";
import type { MemoryDreamRuntimeProvider, MemoryHandlerProvider, MemoryLearningSink, ProjectMemoryStore, ToolCatalog } from "../runtime/ports/index.js";
import type { LLMTransport } from "./provider-core-facade.js";
export interface RuntimeHookBootstrapDeps {
    log: AgentLogger;
    taskStore: TaskStore;
    backgroundTasks: BackgroundTaskManager;
    sessionId: string;
    projectRoot: string;
    memdir: ProjectMemoryStore;
    toolCatalog: ToolCatalog;
    currentUserId: string;
    prefetchState: MemoryPrefetchState;
    getLastUserMessage(): string | undefined;
    getLastAssistantMessage(): string | undefined;
    resolveSmallModelClient(): {
        transport: LLMTransport;
        apiKey: string;
        model: string;
    } | null;
    compressionClient: {
        transport: LLMTransport;
        apiKey: string;
    };
    sendNotification?(method: string, params: Record<string, unknown>): void;
}
export interface RuntimeHookBootstrapResult {
    hooks: HookRegistry;
    memoryHandlerProvider: MemoryHandlerProvider | null;
    memoryDreamProvider: MemoryDreamRuntimeProvider | null;
    memoryLearningSink: MemoryLearningSink | null;
    memoryUserId: string;
}
export declare function configureRuntimeHookBootstrap(deps: RuntimeHookBootstrapDeps): RuntimeHookBootstrapResult;
