import type { IAgentRuntime } from "./types/runtime";
export type TrajectoryFinalStatus = "completed" | "error" | "timeout" | "terminated";
export type TrajectoryLlmCallDetails = {
    model: string;
    modelVersion?: string;
    systemPrompt: string;
    userPrompt: string;
    response: string;
    reasoning?: string;
    temperature: number;
    maxTokens: number;
    purpose: string;
    actionType: string;
    latencyMs: number;
    promptTokens?: number;
    completionTokens?: number;
};
type TrajectoryStartOptions = {
    source?: string;
    metadata?: Record<string, unknown>;
};
type TrajectoryStepState = {
    timestamp: number;
    agentBalance: number;
    agentPoints: number;
    agentPnL: number;
    openPositions: number;
};
type TrajectoryLoggerLike = {
    isEnabled?: () => boolean;
    startTrajectory?: (agentId: string, options?: TrajectoryStartOptions) => Promise<string> | string;
    startStep?: (trajectoryId: string, state: TrajectoryStepState) => string;
    endTrajectory?: (stepIdOrTrajectoryId: string, status?: TrajectoryFinalStatus, finalMetrics?: Record<string, unknown>) => Promise<void> | void;
    flushWriteQueue?: (trajectoryId: string) => Promise<void> | void;
    logLlmCall?: (params: {
        stepId: string;
    } & TrajectoryLlmCallDetails) => void;
};
type StandaloneTrajectoryOptions = {
    source: string;
    metadata?: Record<string, unknown>;
    successStatus?: TrajectoryFinalStatus;
    errorStatus?: Exclude<TrajectoryFinalStatus, "completed">;
};
export declare function resolveTrajectoryLogger(runtime: IAgentRuntime): TrajectoryLoggerLike | null;
export declare function withStandaloneTrajectory<T>(runtime: IAgentRuntime | null | undefined, options: StandaloneTrajectoryOptions, callback: () => Promise<T> | T): Promise<T>;
export declare function logActiveTrajectoryLlmCall(runtime: IAgentRuntime | null | undefined, details: TrajectoryLlmCallDetails): boolean;
export {};
//# sourceMappingURL=trajectory-utils.d.ts.map