import { type GovernanceDecision, type GovernanceRule, type GovernanceRuleGate } from "../runtime.governancePlane/governanceRuleEvaluator.js";
import { type RuntimeAuthorityContext } from "../runtime.governancePlane/runtimeAuthorityResolver.js";
import { type OfficialModuleIdentity, type OfficialModuleKind, type OfficialModuleRuntimeError, type OfficialModuleRuntimeGate } from "./officialModuleRuntimeSurface.js";
export type OfficialModuleGovernanceRequest = {
    runtimeId?: string;
    moduleId?: string;
    moduleKind?: OfficialModuleKind;
    action?: string;
    requestedScopes?: readonly string[];
    grantedScopes?: readonly string[];
    policyScopes?: readonly string[];
    deniedScopes?: readonly string[];
    rules?: readonly GovernanceRule[];
    runtimeReady?: boolean;
    contract?: OfficialModuleRuntimeGate | GovernanceRuleGate;
    authority?: RuntimeAuthorityContext;
};
export type OfficialModuleGovernanceGrant = {
    runtimeId: string;
    module: OfficialModuleIdentity;
    action: string;
    requestedScopes: readonly string[];
    authority: RuntimeAuthorityContext;
    decision: GovernanceDecision;
    approvalRequired: boolean;
    permissionState: GovernanceDecision["status"];
    dispatch: "dry-run";
    unsafeSideEffects: false;
};
export type OfficialModuleGovernanceResult = {
    ok: true;
    grant: OfficialModuleGovernanceGrant;
    events: readonly string[];
} | {
    ok: false;
    error: OfficialModuleRuntimeError;
    events: readonly string[];
};
export declare function requestOfficialModuleGovernance(request?: OfficialModuleGovernanceRequest): OfficialModuleGovernanceResult;
