export type RuntimeSurfaceRegistryCaller = "application" | "official-module" | "runtime" | "management" | "inspection" | "debug";
export type RuntimeSurfaceKind = "applicationSurface" | "officialModuleSurface" | "contractSurface" | "governancePlane" | "invocationMethod" | "inspection" | "debug" | "selfRepair" | "adaptiveRuntime" | "managementPlane" | "behaviorExposure" | "capabilityExposure" | "modeExposure" | "externalControl" | "execEngine" | "modelAdapter" | "interfaceAdapter" | (string & {});
export type RuntimeSurfaceRegistryBoundary = "input" | "contract" | "governance" | "runtime-state" | "registry" | "scope";
export type RuntimeSurfaceRegistryErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SURFACES" | "MISSING_SURFACE_ID" | "DUPLICATE_SURFACE_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SURFACE_NOT_REGISTERED" | "SURFACE_NOT_MOUNTED" | "SURFACE_NOT_READY" | "SURFACE_SCOPE_DENIED" | "CALLER_NOT_ALLOWED";
export type RuntimeSurfaceRegistryGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeSurfaceDescriptor = {
    surfaceId?: string;
    kind?: RuntimeSurfaceKind;
    owner?: string;
    mounted?: boolean;
    ready?: boolean;
    required?: boolean;
    capabilities?: readonly string[];
    scopes?: readonly string[];
    callers?: readonly RuntimeSurfaceRegistryCaller[];
    contract?: RuntimeSurfaceRegistryGate;
    governance?: RuntimeSurfaceRegistryGate;
    metadata?: Readonly<Record<string, unknown>>;
};
export type RegisteredRuntimeSurface = {
    surfaceId: string;
    kind: RuntimeSurfaceKind;
    owner?: string;
    mounted: boolean;
    ready: boolean;
    required: boolean;
    capabilities: readonly string[];
    scopes: readonly string[];
    callers: readonly RuntimeSurfaceRegistryCaller[];
    metadata: Readonly<Record<string, unknown>>;
};
export type RuntimeSurfaceRegistryError = {
    code: RuntimeSurfaceRegistryErrorCode;
    message: string;
    boundary: RuntimeSurfaceRegistryBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type RuntimeSurfaceResolveRequest = {
    surfaceId?: string;
    caller?: RuntimeSurfaceRegistryCaller;
    requestedScopes?: readonly string[];
};
export type RuntimeSurfaceResolveResult = {
    ok: true;
    surface: RegisteredRuntimeSurface;
    grantedScopes: readonly string[];
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeSurfaceRegistryError;
    events: readonly string[];
};
export type RuntimeSurfaceRegistry = {
    runtimeId: string;
    registrySurface: "runtimeSurfaceRegistry";
    surfaces: readonly RegisteredRuntimeSurface[];
    requiredSurfaceIds: readonly string[];
    readySurfaceIds: readonly string[];
    missingRequiredSurfaceIds: readonly string[];
    degradedSurfaceIds: readonly string[];
    dryRun: true;
    unsafeSideEffects: false;
    contractChecked: true;
    governanceChecked: true;
    has: (surfaceId: string) => boolean;
    resolve: (request: RuntimeSurfaceResolveRequest) => RuntimeSurfaceResolveResult;
};
export type RuntimeSurfaceRegistryRequest = {
    runtimeId?: string;
    surfaces?: readonly RuntimeSurfaceDescriptor[];
    runtimeReady?: boolean;
    contract?: RuntimeSurfaceRegistryGate;
    governance?: RuntimeSurfaceRegistryGate;
};
export type RuntimeSurfaceRegistryResult = {
    ok: true;
    registry: RuntimeSurfaceRegistry;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeSurfaceRegistryError;
    events: readonly string[];
};
export declare const runtimeSurfaceRegistryCapability: {
    readonly surface: "agent_runtimeImplementation";
    readonly capability: "runtimeSurfaceRegistry";
    readonly purpose: "register and resolve runtime surfaces without touching execution, model, or interface internals";
    readonly unsafeSideEffects: false;
};
export declare function createRuntimeSurfaceRegistry(request?: RuntimeSurfaceRegistryRequest): RuntimeSurfaceRegistryResult;
