import { type RuntimeInspectionFailure, type RuntimeInspectionFinding, type RuntimeInspectionGate } from "./runtimeInspector.js";
export type RuntimeContractRequirement = {
    contractId?: string;
    required?: boolean;
    version?: string;
    inputBoundary?: readonly string[];
    outputBoundary?: readonly string[];
    errorCodes?: readonly string[];
};
export type RuntimeContractObservation = {
    contractId?: string;
    version?: string;
    present?: boolean;
    accepted?: boolean;
    reason?: string;
    inputBoundary?: readonly string[];
    outputBoundary?: readonly string[];
    errorCodes?: readonly string[];
};
export type RuntimeContractInspectionRequest = {
    runtimeId?: string;
    runtimeReady?: boolean;
    requiredContracts?: readonly RuntimeContractRequirement[];
    observedContracts?: readonly RuntimeContractObservation[];
    contract?: RuntimeInspectionGate;
    governance?: RuntimeInspectionGate;
};
export type RuntimeContractInspectionStatus = "satisfied" | "missing" | "rejected";
export type RuntimeContractInspection = {
    runtimeId: string;
    status: RuntimeContractInspectionStatus;
    requiredContracts: readonly string[];
    observedContracts: readonly string[];
    missingContracts: readonly string[];
    rejectedContracts: readonly string[];
    findings: readonly RuntimeInspectionFinding[];
    inspectionSurface: "runtime.inspection.runtimeContractInspector";
    governanceChecked: true;
    contractChecked: true;
    unsafeSideEffects: false;
};
export type RuntimeContractInspectionResult = {
    ok: true;
    inspection: RuntimeContractInspection;
    events: readonly string[];
} | RuntimeInspectionFailure;
export declare function inspectRuntimeContracts(request?: RuntimeContractInspectionRequest): RuntimeContractInspectionResult;
