/**
 * OutputRouter — routes OmkEvent to the appropriate renderer based on OutputProfile.stdoutMode.
 *
 * Invariant I-004: provider stdout MUST NOT bypass the router.
 * Raw provider stdout is never emitted directly; all output flows through a Renderer.
 */
import type { OmkEvent, OutputProfile } from "./contracts/command-envelope.js";
import type { ThemeRenderer, NlpRenderer, JsonRenderer } from "./renderers.js";
import type { ReasoningTrace } from "./contracts/reasoning-trace.js";
export type Renderer = ThemeRenderer | NlpRenderer | JsonRenderer;
export interface OutputRouter {
    route(event: OmkEvent): void;
    /** Route a reasoning trace through the NLG renderer */
    routeTrace(trace: ReasoningTrace): void;
    /** Render opencode-style status bar at bottom */
    renderStatusBar(provider: string, model: string, intent: string): void;
    flush(): void;
    getRenderer(): Renderer;
}
export declare function createOutputRouter(profile: OutputProfile): OutputRouter;
