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";
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 recordOutputs: boolean;
    readonly stateStore: AgentTraceStateStore;
    readonly tracer: Tracer;
}): AgentMemoryInstrumentation;
