/**
 * Renderers — three output strategies for OmkEvent consumption.
 *
 * ThemeRenderer: rich terminal output using ThemePalette for semantic colors.
 * NlpRenderer: bilingual (KO/EN) structured NLP output for provider consumption.
 * JsonRenderer: structured JSON output for programmatic consumption.
 *
 * Invariant I-004: provider stdout MUST NOT bypass the router.
 */
import type { OmkEvent } from "./contracts/command-envelope.js";
import type { ThemePalette } from "../cli/theme/theme-registry.js";
export interface ThemeRenderer {
    renderTurnStarted(intent: string, provider: string): void;
    renderProgress(message: string, percent?: number): void;
    renderMcpStatus(server: string, status: string): void;
    renderWarning(message: string): void;
    renderResult(content: string): void;
    renderError(message: string, recoverable: boolean): void;
    renderTurnFinished(durationMs: number): void;
    renderStatusBar(provider: string, model: string, intent: string): void;
    flush(): void;
}
export declare function createThemeRenderer(write?: (text: string) => void, palette?: ThemePalette): ThemeRenderer;
export interface NlpRenderer {
    render(event: OmkEvent): string;
    flush(): string;
}
export declare function createNlpRenderer(): NlpRenderer;
export interface JsonRenderer {
    render(event: OmkEvent): object;
    flush(): object[];
}
export declare function createJsonRenderer(): JsonRenderer;
