export type BehaviorExposureBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type BehaviorExposureCaller = "applicationSurface" | "officialModuleSurface" | "governancePlane" | "invocationMethod" | "inspection" | "debug" | "runtime.behaviorExposure";
export type BehaviorEventSource = "runtime" | "executionEngine" | "modelAdapter" | "interfaceAdapter" | "officialModule" | "application";
export type BehaviorExposureGate = {
    accepted: boolean;
    reason?: string;
};
export type BehaviorExposureTrace = {
    correlationId?: string;
    parentEventId?: string;
    sessionId?: string;
};
export type BehaviorExposureErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_EVENT_KIND" | "MISSING_EVENT_SOURCE" | "MISSING_CALLER" | "INVALID_EVENT_PAYLOAD" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SUBSCRIBER_SCOPE_DENIED" | "REAL_DELIVERY_BLOCKED";
export type BehaviorExposureError = {
    code: BehaviorExposureErrorCode;
    message: string;
    boundary: BehaviorExposureBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type BehaviorEventPublisherRequest = {
    runtimeId?: string;
    sessionId?: string;
    eventId?: string;
    eventKind?: string;
    source?: BehaviorEventSource;
    caller?: BehaviorExposureCaller;
    payload?: Readonly<Record<string, unknown>>;
    requestedSubscribers?: readonly string[];
    allowedSubscribers?: readonly string[];
    runtimeReady?: boolean;
    deliver?: boolean;
    contract?: BehaviorExposureGate;
    governance?: BehaviorExposureGate;
    trace?: BehaviorExposureTrace;
    observedAt?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type PublishedBehaviorEvent = {
    surface: "runtime.behaviorExposure";
    type: "behavior.event.published";
    runtimeId: string;
    sessionId: string;
    eventId: string;
    eventKind: string;
    source: BehaviorEventSource;
    caller: BehaviorExposureCaller;
    payload: Readonly<Record<string, unknown>>;
    payloadKeys: readonly string[];
    trace: BehaviorExposureTrace;
    observedAt: string;
    route: "agent_runtimeImplementation.runtime.behaviorExposure.behaviorEventPublisher";
    audit: {
        dryRun: true;
        delivered: false;
        unsafeSideEffects: false;
        contractSurface: "runtime.contractSurface";
        governanceRequired: true;
    };
    metadata: Readonly<Record<string, unknown>>;
};
export type BehaviorEventPublication = {
    mode: "dry-run";
    requestedSubscribers: readonly string[];
    deliverableSubscribers: readonly string[];
    actualSubscriberNotificationStarted: false;
};
export type BehaviorEventPublisherResult = {
    ok: true;
    event: PublishedBehaviorEvent;
    publication: BehaviorEventPublication;
    events: readonly string[];
} | {
    ok: false;
    error: BehaviorExposureError;
    events: readonly string[];
};
export declare const behaviorEventPublisherDescriptor: {
    readonly surface: "runtime.behaviorExposure";
    readonly capability: "behaviorEventPublisher";
    readonly purpose: "publish a governed behavior event envelope without notifying subscribers in the first implementation";
    readonly mode: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function cleanBehaviorExposureList(values: readonly string[] | undefined): readonly string[];
export declare function behaviorExposureFailure(code: BehaviorExposureErrorCode, message: string, boundary: BehaviorExposureBoundary): BehaviorEventPublisherResult;
export declare function publishBehaviorEvent(request?: BehaviorEventPublisherRequest): BehaviorEventPublisherResult;
