import type { GovernanceDecisionStatus } from "./governanceRuleEvaluator.js";
import type { RuntimeAuthorityContext } from "./runtimeAuthorityResolver.js";
export type GovernanceViolationSeverity = "info" | "warning" | "recoverable" | "critical";
export type GovernanceViolationRoute = "inspection" | "debug" | "management" | "self-repair";
export type GovernanceViolationBoundary = "input" | "governance" | "runtime-state";
export type GovernanceViolationReportErrorCode = "MISSING_RUNTIME_ID" | "MISSING_VIOLATION_CODE" | "MISSING_MESSAGE" | "RUNTIME_NOT_READY" | "GOVERNANCE_REJECTED";
export type GovernanceViolationGate = {
    accepted: boolean;
    reason?: string;
};
export type GovernanceViolation = {
    code: string;
    message: string;
    severity?: GovernanceViolationSeverity;
    decisionStatus?: GovernanceDecisionStatus;
    action?: string;
};
export type GovernanceViolationReportRequest = {
    runtimeId?: string;
    authority?: RuntimeAuthorityContext;
    violation?: GovernanceViolation;
    routes?: readonly GovernanceViolationRoute[];
    runtimeReady?: boolean;
    governance?: GovernanceViolationGate;
    correlationId?: string;
};
export type GovernanceViolationEvent = {
    type: "runtime.governance.violation";
    runtimeId: string;
    violationCode: string;
    message: string;
    severity: GovernanceViolationSeverity;
    decisionStatus?: GovernanceDecisionStatus;
    action?: string;
    callerId?: string;
    routes: readonly GovernanceViolationRoute[];
    correlationId?: string;
    punishCaller: false;
    unsafeSideEffects: false;
};
export type GovernanceViolationReportError = {
    code: GovernanceViolationReportErrorCode;
    message: string;
    boundary: GovernanceViolationBoundary;
    publicSafe: true;
};
export type GovernanceViolationReportResult = {
    ok: true;
    event: GovernanceViolationEvent;
    events: readonly string[];
} | {
    ok: false;
    error: GovernanceViolationReportError;
    events: readonly string[];
};
export declare function reportGovernanceViolation(request?: GovernanceViolationReportRequest): GovernanceViolationReportResult;
