import type { NotificationMethod, NotificationMethodMap } from "../protocol/notifications.js";
import type { MemoryDreamRuntimeProvider, MemoryHandlerProvider, PathService, ToolBootstrap, ToolCatalog } from "../runtime/ports/index.js";
import { MediaPersistence } from "../runtime/infra/media-persistence.js";
import { MediaClient, ProviderRegistry, type LLMTransport } from "./provider-core-facade.js";
import { type MemoryProviderState } from "./memory-coordinator.js";
import { type PetRuntime } from "./pet-runtime.js";
import { type TurnMediaSetupHost } from "./turn-media-setup.js";
export interface StdioRuntimeServicesDeps {
    getActiveProjectRoot(): string;
    getCurrentSessionId?(): string | undefined;
    resolveClientForPurpose(purpose: import("../runtime/infra/model-registry.js").ModelPurpose): {
        transport: LLMTransport;
        apiKey: string;
        model: string;
    } | null;
    sendNotification<M extends NotificationMethod>(method: M, params: NotificationMethodMap[M]): void;
}
export interface StdioRuntimeServices {
    providerRegistry: ProviderRegistry;
    mediaClient: MediaClient;
    mediaPersistence: MediaPersistence;
    pathService: PathService;
    toolCatalog: ToolCatalog;
    toolBootstrap: ToolBootstrap;
    petRuntime: PetRuntime;
    configureTurnMedia(params: {
        host: Omit<TurnMediaSetupHost, "mediaClient">;
        config?: Record<string, unknown>;
        turnId: string;
    }): void;
    ensureMemoryProvider(currentUserId: string): MemoryProviderState;
    closeMemoryProviders(state: {
        memoryProvider: MemoryHandlerProvider | null;
        memoryDreamProvider: MemoryDreamRuntimeProvider | null;
    }): void;
}
export declare function createStdioRuntimeServices(deps: StdioRuntimeServicesDeps): StdioRuntimeServices;
