import { type GovernanceDecision, type GovernanceRule, type GovernanceRuleGate } from "./governanceRuleEvaluator.js";
import { type RuntimeAuthorityContext } from "./runtimeAuthorityResolver.js";
export type ModuleGovernanceBridgeBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type ModuleGovernanceBridgeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_MODULE_ID" | "MISSING_MODULE_KIND" | "MISSING_ACTION" | "AUTHORITY_RESOLUTION_FAILED" | "GOVERNANCE_EVALUATION_FAILED";
export type ModuleGovernanceBridgeRequest = {
    runtimeId?: string;
    moduleId?: string;
    moduleKind?: string;
    action?: string;
    authority?: RuntimeAuthorityContext;
    allowedModuleScopes?: readonly string[];
    requestedScopes?: readonly string[];
    rules?: readonly GovernanceRule[];
    runtimeReady?: boolean;
    contract?: GovernanceRuleGate;
};
export type ModuleGovernanceBridgePlan = {
    runtimeId: string;
    moduleId: string;
    moduleKind: string;
    action: string;
    authority: RuntimeAuthorityContext;
    decision: GovernanceDecision;
    permissionState: GovernanceDecision["status"];
    dispatch: "dry-run";
    moduleStrategyImplemented: false;
    unsafeSideEffects: false;
};
export type ModuleGovernanceBridgeError = {
    code: ModuleGovernanceBridgeErrorCode;
    message: string;
    boundary: ModuleGovernanceBridgeBoundary;
    publicSafe: true;
};
export type ModuleGovernanceBridgeResult = {
    ok: true;
    plan: ModuleGovernanceBridgePlan;
    events: readonly string[];
} | {
    ok: false;
    error: ModuleGovernanceBridgeError;
    events: readonly string[];
};
export declare function createModuleGovernanceBridge(request?: ModuleGovernanceBridgeRequest): ModuleGovernanceBridgeResult;
