import type { LLMRequest } from "../agent/types.js";
import type { ModelPurpose } from "../runtime/infra/model-registry.js";
import type { RpcHandlerHosts } from "./rpc-registry.js";
type DirectStdioRpcHost = RpcHandlerHosts["config"] & RpcHandlerHosts["control"] & RpcHandlerHosts["files"] & RpcHandlerHosts["skills"] & RpcHandlerHosts["project"] & RpcHandlerHosts["community"] & RpcHandlerHosts["settings"] & RpcHandlerHosts["petConfirm"] & {
    readonly multiAgentHandlerHost: RpcHandlerHosts["multiAgent"];
    readonly workflowHandlerHost: RpcHandlerHosts["workflow"];
};
type StdioRpcAdapterSource = DirectStdioRpcHost & {
    activeTurn: RpcHandlerHosts["turn"]["activeTurn"];
    currentSessionId: NonNullable<RpcHandlerHosts["session"]["currentSessionId"]>;
    currentModel: NonNullable<RpcHandlerHosts["session"]["currentModel"]>;
    sessionState: RpcHandlerHosts["session"]["sessionState"];
    memoryPrefetchState: NonNullable<RpcHandlerHosts["session"]["memoryPrefetchState"]>;
    sessionHistory: RpcHandlerHosts["session"]["sessionHistory"];
    currentHooks: RpcHandlerHosts["dream"]["currentHooks"];
    permissionChecker: RpcHandlerHosts["turn"]["permissionChecker"];
    mediaClient: RpcHandlerHosts["media"]["mediaClient"];
    memoryProvider: RpcHandlerHosts["memory"]["memoryProvider"];
    memoryDreamProvider: RpcHandlerHosts["dream"]["memoryProvider"];
    memoryUserId: NonNullable<RpcHandlerHosts["memory"]["memoryUserId"]>;
    pendingAskUser: RpcHandlerHosts["turn"]["pendingAskUser"];
    petRuntime: RpcHandlerHosts["pet"]["petRuntime"];
    verbose: NonNullable<RpcHandlerHosts["dream"]["verbose"]>;
    resolveClientForPurpose(purpose: ModelPurpose): {
        transport: {
            stream(request: LLMRequest, apiKey: string): AsyncIterable<{
                type: string;
                text?: string;
            }>;
        };
        apiKey: string;
        model: string;
    } | null;
    ensureMemoryProvider: NonNullable<RpcHandlerHosts["memory"]["ensureMemoryProvider"]>;
    ensureModelRegistryHydrated: NonNullable<RpcHandlerHosts["pet"]["ensureModelRegistryHydrated"]>;
    enableIdleDream: NonNullable<RpcHandlerHosts["session"]["enableIdleDream"]>;
    configureTurnMedia: NonNullable<RpcHandlerHosts["pet"]["configureTurnMedia"]>;
    sendError: NonNullable<RpcHandlerHosts["session"]["sendError"]>;
    createDreamHandlerHost(): RpcHandlerHosts["dream"];
};
/**
 * Build the per-domain handler-host bundle the RPC registry binds to.
 *
 * Domains whose contracts StdioServer satisfies directly stay compiler-checked
 * through DirectStdioRpcHost. Stateful domains receive explicit adapters so
 * handler contracts stay narrow without domain-level casts.
 */
export declare function createStdioRpcHandlerHosts<Host extends StdioRpcAdapterSource>(host: Host): RpcHandlerHosts;
export {};
