import { type Tracer } from "#compiled/@opentelemetry/api/index.js";
import type { InstrumentationProviderDefinition } from "#instrumentation/lifecycle.js";
import type { InstrumentationMemoryExecutionOperation } from "#instrumentation/memory.js";
import type { AgentTraceStateStore } from "#tracing/agent-trace-state.js";
import type { ConversationEnvironment } from "#shared/conversation-context.js";
export interface AgentMemoryInstrumentation {
    readonly events: Pick<NonNullable<InstrumentationProviderDefinition["events"]>, "memory.operation.completed" | "memory.operation.failed" | "memory.operation.started">;
    runInContext<T>(operation: InstrumentationMemoryExecutionOperation, execute: () => PromiseLike<T>): Promise<T>;
}
export declare function createAgentMemoryInstrumentation(input: {
    readonly environment: ConversationEnvironment;
    readonly recordOutputs?: boolean;
    readonly stateStore: AgentTraceStateStore;
    readonly tracer: Tracer;
}): AgentMemoryInstrumentation;
