import type { BehaviorExposureBoundary, BehaviorExposureCaller, BehaviorExposureGate, PublishedBehaviorEvent } from "./behaviorEventPublisher.js";
export type BehaviorTraceSurfaceErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_TRACE_ID" | "MISSING_CALLER" | "EMPTY_TRACE_EVENTS" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "TRACE_SCOPE_DENIED" | "REAL_STREAM_BLOCKED";
export type BehaviorTraceSurfaceRequest = {
    runtimeId?: string;
    sessionId?: string;
    traceId?: string;
    caller?: BehaviorExposureCaller;
    events?: readonly PublishedBehaviorEvent[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    includePayloadKeys?: boolean;
    runtimeReady?: boolean;
    stream?: boolean;
    contract?: BehaviorExposureGate;
    governance?: BehaviorExposureGate;
    generatedAt?: string;
};
export type BehaviorTraceSurfaceError = {
    code: BehaviorTraceSurfaceErrorCode;
    message: string;
    boundary: BehaviorExposureBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type BehaviorTraceFrame = {
    eventId: string;
    eventKind: string;
    source: string;
    observedAt: string;
    correlationId?: string;
    parentEventId?: string;
    payloadKeys?: readonly string[];
};
export type BehaviorTraceSurface = {
    surface: "runtime.behaviorExposure";
    type: "behavior.trace.surface";
    runtimeId: string;
    sessionId: string;
    traceId: string;
    caller: BehaviorExposureCaller;
    frames: readonly BehaviorTraceFrame[];
    eventKinds: readonly string[];
    acceptedScopes: readonly string[];
    generatedAt: string;
    mode: "dry-run";
    streamStarted: false;
    unsafeSideEffects: false;
    route: "agent_runtimeImplementation.runtime.behaviorExposure.behaviorTraceSurface";
};
export type BehaviorTraceSurfaceResult = {
    ok: true;
    trace: BehaviorTraceSurface;
    events: readonly string[];
} | {
    ok: false;
    error: BehaviorTraceSurfaceError;
    events: readonly string[];
};
export declare const behaviorTraceSurfaceDescriptor: {
    readonly surface: "runtime.behaviorExposure";
    readonly capability: "behaviorTraceSurface";
    readonly purpose: "shape behavior events into a trace surface without starting a live stream";
    readonly mode: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function createBehaviorTraceSurface(request?: BehaviorTraceSurfaceRequest): BehaviorTraceSurfaceResult;
