import type { RuntimeContractBoundary, RuntimeContractGate } from "./runtimePublicContract.js";
export type RuntimeInternalConsumerSurface = "applicationSurface" | "officialModuleSurface" | "governancePlane" | "invocationMethod" | "inspection" | "debug" | "selfRepair" | "adaptiveRuntime";
export type RuntimeInternalContractErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CONSUMER" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "DIRECT_MUTATION_FORBIDDEN";
export type RuntimeInternalContractError = {
    code: RuntimeInternalContractErrorCode;
    message: string;
    boundary: RuntimeContractBoundary;
    internalSafe: true;
};
export type RuntimeInternalConsumer = {
    surface: RuntimeInternalConsumerSurface;
    id: string;
};
export type RuntimeInternalContractRequest = {
    runtimeId?: string;
    consumer?: RuntimeInternalConsumer;
    runtimeReady?: boolean;
    requestedScopes?: readonly string[];
    allowMutation?: boolean;
    contract?: RuntimeContractGate;
    governance?: RuntimeContractGate;
};
export type RuntimeInternalContractSnapshot = {
    runtimeId: string;
    consumer: RuntimeInternalConsumer;
    exposure: "internal";
    grantedScopes: readonly string[];
    auditRequired: true;
    mutationAllowed: false;
    unsafeSideEffects: false;
};
export type RuntimeInternalContractResult = {
    ok: true;
    contract: RuntimeInternalContractSnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeInternalContractError;
    events: readonly string[];
};
export declare function defineRuntimeInternalContract(request?: RuntimeInternalContractRequest): RuntimeInternalContractResult;
