/** * io-plane โ€” the host's interactive + effectful I/O plane * (host-owned-run-timing Phase 6 ยง6.1). * * Merges the former egress plane (cloud sync, SARIF file sink) and live-view * plane (registerLiveView, renderLive) into one module โ€” both concerns are * effectful host I/O that tools reach only through documented ToolCliContext * seams. */ import { type LiveViewContext, type LiveViewRenderer, type Logger, type ToolCliContext, type ToolRunCompletion, type ToolRunSessions } from '@opensip-cli/core'; import type { RunPlaneFactory } from './run-plane.js'; /** Stable dependencies the egress plane captures. */ export interface EgressPlaneDeps { /** The single exit-code write path (from the output plane) โ€” threaded into delivery. */ readonly setExitCode: (code: number) => void; readonly logger?: Logger; } /** The egress plane's public surface (the two `ToolCliContext` egress seams). */ export type EgressPlane = Pick; export declare function createEgressPlane(deps: EgressPlaneDeps): EgressPlane; export interface LiveViewRegistry { readonly register: (key: string, renderer: LiveViewRenderer) => void; readonly render: (key: string, args: unknown, liveContext?: LiveViewContext) => Promise; readonly has: (key: string) => boolean; } export declare function createLiveViewRegistry(log?: Logger): LiveViewRegistry; /** Stable dependencies the live plane binds together. */ export interface LivePlaneDeps { readonly liveViews: LiveViewRegistry; readonly runPlane: RunPlaneFactory; readonly runSession: ToolRunSessions; } /** The live plane's public surface (the two `ToolCliContext` live-view seams). */ export interface LivePlane { readonly register: LiveViewRegistry['register']; readonly renderLive: (key: string, args: unknown, liveContext?: LiveViewContext) => Promise; } export declare function createLivePlane(deps: LivePlaneDeps): LivePlane; /** Build both egress and live planes from one dependency bundle. */ export declare function createIoPlane(deps: { readonly setExitCode: (code: number) => void; readonly logger?: Logger; readonly liveViews: LiveViewRegistry; readonly runPlane: RunPlaneFactory; readonly runSession: ToolRunSessions; }): EgressPlane & LivePlane; //# sourceMappingURL=io-plane.d.ts.map