import type { BehaviorEventPublisherRequest, BehaviorEventPublisherResult, BehaviorExposureBoundary, BehaviorExposureCaller, BehaviorExposureGate } from "./behaviorEventPublisher.js";
import type { BehaviorObservationPortRequest, BehaviorObservationPortResult } from "./behaviorObservationPort.js";
import type { BehaviorTraceSurfaceRequest, BehaviorTraceSurfaceResult } from "./behaviorTraceSurface.js";
export type BehaviorExposureRuntimeCapability = "publish-event" | "open-observation-port" | "create-trace-surface";
export type BehaviorExposureRuntimeErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_CALLER" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "CAPABILITY_SCOPE_DENIED";
export type BehaviorExposureRuntimeRequest = {
    runtimeId?: string;
    sessionId?: string;
    caller?: BehaviorExposureCaller;
    requestedCapabilities?: readonly BehaviorExposureRuntimeCapability[];
    allowedCapabilities?: readonly BehaviorExposureRuntimeCapability[];
    runtimeReady?: boolean;
    contract?: BehaviorExposureGate;
    governance?: BehaviorExposureGate;
    createdAt?: string;
};
export type BehaviorExposureRuntimeError = {
    code: BehaviorExposureRuntimeErrorCode;
    message: string;
    boundary: BehaviorExposureBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type BehaviorExposureRuntimeSurface = {
    surface: "runtime.behaviorExposure";
    type: "behavior.exposure.runtime";
    runtimeId: string;
    sessionId: string;
    caller: BehaviorExposureCaller;
    capabilities: readonly BehaviorExposureRuntimeCapability[];
    createdAt: string;
    ready: true;
    mode: "dry-run";
    unsafeSideEffects: false;
    route: "agent_runtimeImplementation.runtime.behaviorExposure.behaviorExposureRuntime";
    publishEvent: (request: BehaviorEventPublisherRequest) => BehaviorEventPublisherResult;
    openObservationPort: (request: BehaviorObservationPortRequest) => BehaviorObservationPortResult;
    createTraceSurface: (request: BehaviorTraceSurfaceRequest) => BehaviorTraceSurfaceResult;
};
export type BehaviorExposureRuntimeResult = {
    ok: true;
    runtime: BehaviorExposureRuntimeSurface;
    events: readonly string[];
} | {
    ok: false;
    error: BehaviorExposureRuntimeError;
    events: readonly string[];
};
export declare const behaviorExposureRuntimeDescriptor: {
    readonly surface: "runtime.behaviorExposure";
    readonly capability: "behaviorExposureRuntime";
    readonly purpose: "assemble the behavior exposure runtime surface from dry-run event, observation, and trace capabilities";
    readonly mode: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function createBehaviorExposureRuntime(request?: BehaviorExposureRuntimeRequest): BehaviorExposureRuntimeResult;
