import { type InstrumentationSessionStartedEvent, type InstrumentationTraceSeed, type InstrumentationTurnStartedEvent } from "#instrumentation/lifecycle.js"; import type { AgentSpanIdGenerator } from "#tracing/agent-span-id-generator.js"; import type { TraceCapturePolicy } from "#tracing/otel-declaration.js"; import type { AgentSessionTraceState, AgentTraceStateStore } from "#tracing/agent-trace-state.js"; import { type AgentSamplingOperation } from "#tracing/agent-span-contract.js"; import type { ConversationEnvironment } from "#shared/conversation-context.js"; interface AgentOtelSessionContextInput { readonly environment: ConversationEnvironment; readonly frameworkVersion: string; readonly idGenerator: AgentSpanIdGenerator; readonly samplesTrace?: (traceId: string, operation?: AgentSamplingOperation) => boolean; readonly stateStore: AgentTraceStateStore; readonly tracePolicy?: TraceCapturePolicy; } type SessionMetadata = Omit; interface AgentOtelSessionContext { readonly ensureSessionContext: (event: SessionMetadata) => Promise; readonly prepareSessionTrace: (event: InstrumentationSessionStartedEvent) => Promise; readonly prepareTurnTrace: (event: InstrumentationTurnStartedEvent) => Promise; } export declare function createAgentOtelSessionContext(input: AgentOtelSessionContextInput): AgentOtelSessionContext; export {};