/**
 * Trajectory context management for benchmark/training traces.
 *
 * Node.js: AsyncLocalStorage for async-safe propagation (initialized
 * synchronously to avoid race with first message processing).
 * Browser: stack-based fallback.
 */
export interface TrajectoryContext {
    trajectoryStepId?: string;
    /** Pipeline stage purpose for trajectory logging (e.g. "should_respond", "response", "action", "evaluation"). */
    purpose?: string;
}
export interface ITrajectoryContextManager {
    run<T>(context: TrajectoryContext | undefined, fn: () => T | Promise<T>): T | Promise<T>;
    active(): TrajectoryContext | undefined;
}
export declare function setTrajectoryContextManager(manager: ITrajectoryContextManager): void;
export declare function getTrajectoryContextManager(): ITrajectoryContextManager;
export declare function runWithTrajectoryContext<T>(context: TrajectoryContext | undefined, fn: () => T | Promise<T>): T | Promise<T>;
export declare function getTrajectoryContext(): TrajectoryContext | undefined;
/**
 * Set the pipeline purpose on the current trajectory context.
 * Mutates in place so nested useModel calls pick up the correct stage.
 */
export declare function setTrajectoryPurpose(purpose: string): void;
//# sourceMappingURL=trajectory-context.d.ts.map