export type DebugContractProbeBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type DebugContractProbeCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "debug";
export type DebugContractProbeCaller = {
    kind: DebugContractProbeCallerKind;
    id: string;
    moduleId?: string;
};
export type DebugContractProbeGate = {
    accepted: boolean;
    reason?: string;
};
export type DebugContractExpectation = {
    contractId: string;
    surface: string;
    required?: boolean;
    satisfied: boolean;
    reason?: string;
};
export type DebugContractProbeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "CONTRACT_VIOLATED";
export type DebugContractProbeRequest = {
    runtimeId?: string;
    caller?: DebugContractProbeCaller;
    runtimeReady?: boolean;
    contract?: DebugContractProbeGate;
    governance?: DebugContractProbeGate;
    expectations?: readonly DebugContractExpectation[];
    requestedScopes?: readonly string[];
    grantedScopes?: readonly string[];
};
export type DebugContractProbeReport = {
    runtimeId: string;
    caller: DebugContractProbeCaller;
    status: "satisfied" | "violated";
    checkedContracts: readonly DebugContractExpectation[];
    failedContracts: readonly DebugContractExpectation[];
    requestedScopes: readonly string[];
    grantedScopes: readonly string[];
    missingScopes: readonly string[];
    probeSurface: "runtime.debug.debugContractProbe";
    contractChecked: true;
    governanceChecked: true;
    readonly: true;
    unsafeSideEffects: false;
};
export type DebugContractProbeError = {
    code: DebugContractProbeErrorCode;
    message: string;
    boundary: DebugContractProbeBoundary;
    publicSafe: true;
};
export type DebugContractProbeResult = {
    ok: true;
    report: DebugContractProbeReport;
    events: readonly string[];
} | {
    ok: false;
    error: DebugContractProbeError;
    events: readonly string[];
};
export declare function probeDebugContract(request?: DebugContractProbeRequest): DebugContractProbeResult;
