export type DebugGovernanceProbeBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type DebugGovernanceProbeCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "debug";
export type DebugGovernanceProbeCaller = {
    kind: DebugGovernanceProbeCallerKind;
    id: string;
    moduleId?: string;
};
export type DebugGovernanceProbeGate = {
    accepted: boolean;
    reason?: string;
};
export type DebugGovernanceDecisionStatus = "allow" | "deny" | "requires-approval" | "degrade";
export type DebugGovernanceDecisionSnapshot = {
    decisionId: string;
    action: string;
    status: DebugGovernanceDecisionStatus;
    reason?: string;
    policyId?: string;
    requiredScopes?: readonly string[];
    grantedScopes?: readonly string[];
};
export type DebugGovernanceProbeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "GOVERNANCE_DENIED";
export type DebugGovernanceProbeRequest = {
    runtimeId?: string;
    caller?: DebugGovernanceProbeCaller;
    runtimeReady?: boolean;
    contract?: DebugGovernanceProbeGate;
    governance?: DebugGovernanceProbeGate;
    decisions?: readonly DebugGovernanceDecisionSnapshot[];
    failOnDeny?: boolean;
};
export type DebugGovernanceProbeReport = {
    runtimeId: string;
    caller: DebugGovernanceProbeCaller;
    status: "clear" | "blocked" | "approval-needed" | "degraded";
    decisions: readonly DebugGovernanceDecisionSnapshot[];
    blockingDecisions: readonly DebugGovernanceDecisionSnapshot[];
    approvalDecisions: readonly DebugGovernanceDecisionSnapshot[];
    degradedDecisions: readonly DebugGovernanceDecisionSnapshot[];
    probeSurface: "runtime.debug.debugGovernanceProbe";
    contractChecked: true;
    governanceChecked: true;
    readonly: true;
    unsafeSideEffects: false;
};
export type DebugGovernanceProbeError = {
    code: DebugGovernanceProbeErrorCode;
    message: string;
    boundary: DebugGovernanceProbeBoundary;
    publicSafe: true;
};
export type DebugGovernanceProbeResult = {
    ok: true;
    report: DebugGovernanceProbeReport;
    events: readonly string[];
} | {
    ok: false;
    error: DebugGovernanceProbeError;
    events: readonly string[];
};
export declare function probeDebugGovernance(request?: DebugGovernanceProbeRequest): DebugGovernanceProbeResult;
