/**
 * shared.ts -- Helpers for the orchestrator adapter substrate.
 *
 * Provides: plan-tree cycle detection, canonical audit-event builder,
 * reviewer-tier validation. Consumed by BaseOrchestratorAdapter and
 * concrete adapters. No runtime dependencies beyond Node built-ins.
 *
 * Spec: P3-ORCH-01, AC 3
 * @connexum/ai-governance
 */
import type { PlanStep } from './index';
import type { CanonicalAuditEventName, ReviewerTier } from './index';
/**
 * Detects cycles in a plan's dependency graph using depth-first search.
 * Returns the IDs of steps that form a cycle, or an empty array if none.
 */
export declare function detectPlanCycle(steps: PlanStep[]): string[];
/**
 * Validates that all step dependency IDs reference known step IDs.
 * Returns the undefined dependency IDs, or an empty array if all valid.
 */
export declare function findUndefinedDependencies(steps: PlanStep[]): string[];
export interface CanonicalAuditEvent {
    /** Unique event ID */
    eventId: string;
    /** Canonical event name from the Section 3.2 taxonomy */
    eventName: CanonicalAuditEventName;
    /** Severity level */
    severity: 'DEBUG' | 'INFO' | 'WARN' | 'CRITICAL';
    /** ISO-8601 timestamp */
    timestamp: string;
    /** Adapter that emitted the event */
    adapterId: string;
    /** Orchestrator being governed */
    orchestratorId: string;
    /** Structured event payload */
    payload: Record<string, unknown>;
}
/** Severity map for each canonical event (Section 3.2) */
export declare const CANONICAL_SEVERITY: Record<CanonicalAuditEventName, 'DEBUG' | 'INFO' | 'WARN' | 'CRITICAL'>;
/**
 * Build a canonical audit event with a generated eventId and current
 * timestamp. The caller provides the payload; severity is auto-resolved
 * from the taxonomy.
 */
export declare function buildCanonicalAuditEvent(adapterId: string, orchestratorId: string, eventName: CanonicalAuditEventName, payload: Record<string, unknown>): CanonicalAuditEvent;
export declare const VALID_REVIEWER_TIERS: readonly ReviewerTier[];
export declare function isValidReviewerTier(tier: string): tier is ReviewerTier;
//# sourceMappingURL=shared.d.ts.map