/**
 * Lineage Gate — Gate 6 (ADR-004 Enforcement)
 *
 * PURPOSE: Enforce that artifact-producing commands reference a valid
 * simulation parent. No integration proposal or ERP mapping may
 * exist without traceability to a governed simulation.
 *
 * INVARIANTS ENFORCED:
 * - ADR-004 Invariant 2: Every integration/ERP mapping derives from a simulation
 * - ADR-004 Invariant 3: No integration proposal without traceability
 * - ADR-004 Invariant 7: CLI is only path for artifact creation
 *
 * EXIT CODE: 110 (LINEAGE_VIOLATION)
 *
 * BEHAVIOR:
 * - Commands that produce enterprise artifacts (erp surface, erp map,
 *   erp export) must pass a simulation_id in their positional args
 *   or flags when the lineage gate is enabled.
 * - Commands that do not produce artifacts (list, inspect, help)
 *   are exempt from lineage validation.
 * - The gate validates that simulation_id is present and non-empty.
 *   Whether the simulation exists in Ruvector is validated at the
 *   command level, not at the gate level (gate is synchronous).
 */
import type { CommandObject } from '../types/index.js';
export declare const LINEAGE_VIOLATION_EXIT_CODE = 110;
export interface LineageGateResult {
    /** Whether the command passed lineage validation */
    allowed: boolean;
    /** Error message if validation failed */
    message: string;
    /** Exit code if validation failed */
    exitCode: number;
    /** Whether this command requires lineage */
    lineageRequired: boolean;
}
/**
 * Check whether a command passes lineage validation.
 * Returns a result indicating whether the command is allowed.
 *
 * Lineage is required when:
 * 1. The command is in LINEAGE_REQUIRED_COMMANDS
 * 2. The command is not in LINEAGE_EXEMPT_COMMANDS
 * 3. The command produces enterprise artifacts
 */
export declare function checkLineageGate(cmd: CommandObject): LineageGateResult;
/**
 * Enforce lineage gate — exits the process if validation fails.
 */
export declare function enforceLineageGate(cmd: CommandObject): void;
/**
 * Check if a command requires lineage validation.
 */
export declare function requiresLineageValidation(primary: string, sub?: string): boolean;
//# sourceMappingURL=lineage-gate.d.ts.map