import type { OutputBinding, OutputValidationResult } from '../semantic-governance/types.js';
import type { OutputValidationOptions, OutputValidationMode } from './types.js';
/**
 * Output validation result with additional metadata
 */
export interface CognigateOutputValidationResult {
    /** Whether validation passed */
    valid: boolean;
    /** Original output */
    originalOutput: unknown;
    /** Sanitized output (if sanitizePII is enabled) */
    sanitizedOutput?: unknown;
    /** Whether output was modified */
    modified: boolean;
    /** Validation details */
    details: OutputValidationResult;
    /** PII detection results */
    piiDetected: boolean;
    /** Detected PII types */
    piiTypes: string[];
    /** Validation mode used */
    mode: OutputValidationMode;
    /** Duration in milliseconds */
    durationMs: number;
}
/**
 * Output integrator for Cognigate execution gateway.
 *
 * Features:
 * - Integrates with semantic-governance OutputValidator
 * - Supports strict (reject) and permissive (log only) modes
 * - PII detection and optional sanitization
 * - Custom prohibited patterns
 */
export declare class OutputIntegrator {
    private readonly validator;
    private readonly mode;
    private readonly sanitizePII;
    constructor(options: OutputValidationOptions, binding?: OutputBinding);
    /**
     * Validate and optionally sanitize execution output
     */
    validateOutput(output: unknown): CognigateOutputValidationResult;
    /**
     * Validate and transform output for return.
     * In strict mode, throws on validation failure.
     * In permissive mode, returns original output with logged warning.
     */
    processOutput(output: unknown): Promise<{
        output: unknown;
        validation: CognigateOutputValidationResult;
    }>;
    /**
     * Check if a pattern description indicates PII
     */
    private isPIIPattern;
    /**
     * Validate URLs in output against allowed/blocked endpoints
     */
    validateUrls(output: unknown): {
        valid: boolean;
        invalidUrls: string[];
    };
}
/**
 * Create an output integrator with default settings
 */
export declare function createOutputIntegrator(options: OutputValidationOptions, binding?: OutputBinding): OutputIntegrator;
/**
 * Create a strict output integrator that rejects invalid output
 */
export declare function createStrictOutputIntegrator(sanitizePII?: boolean, binding?: OutputBinding): OutputIntegrator;
/**
 * Create a permissive output integrator that logs but allows invalid output
 */
export declare function createPermissiveOutputIntegrator(sanitizePII?: boolean, binding?: OutputBinding): OutputIntegrator;
//# sourceMappingURL=output-integration.d.ts.map