/**
 * Output Format Gate Module
 *
 * CONTROL PLANE HARDENING
 *
 * PURPOSE: Enforce strict JSON-only output for CLI operations.
 *          CLI MUST NOT produce narrative output for operational commands.
 *
 * CRITICAL REQUIREMENTS:
 * - Enforce strict JSON outputs
 * - Never allow narrative output
 * - Validate output format before rendering
 *
 * FORBIDDEN:
 * - Narrative/prose output
 * - Unstructured text responses
 * - Human-readable summaries (for operational commands)
 */
import { type OutputFormat } from '../types/index.js';
/**
 * Exit code for invalid output format.
 */
export declare const INVALID_FORMAT_EXIT_CODE: 65;
export declare class InvalidOutputFormatError extends Error {
    readonly requestedFormat: string;
    readonly allowedFormats: string[];
    constructor(requestedFormat: string, allowedFormats: string[]);
}
export interface OutputFormatGateResult {
    valid: boolean;
    format: OutputFormat;
    exitCode?: number;
    message?: string;
}
/**
 * Validate the requested output format.
 * Only structured formats (json, yaml) are allowed for operational commands.
 */
export declare function checkOutputFormatGate(requestedFormat: OutputFormat | undefined, command: string): OutputFormatGateResult;
/**
 * Enforce the output format gate.
 * Exits the process if an invalid format is requested.
 */
export declare function enforceOutputFormatGate(requestedFormat: OutputFormat | undefined, command: string): OutputFormat;
/**
 * Check if a command requires structured output.
 */
export declare function requiresStructuredOutput(command: string): boolean;
/**
 * Get the default output format for a command.
 * Always returns 'json' for operational commands.
 */
export declare function getDefaultFormat(command: string): OutputFormat;
//# sourceMappingURL=output-format-gate.d.ts.map