import { ChainValues, LLMResult } from "../../schema/index.js"; import { BaseCallbackHandler } from "../base.js"; export type RunType = "llm" | "chain" | "tool"; export interface BaseTracerSession { start_time: number; name?: string; } export type TracerSessionCreate = BaseTracerSession; export interface TracerSession extends BaseTracerSession { id: number; } export interface BaseRun { uuid: string; parent_uuid?: string; start_time: number; end_time: number; execution_order: number; serialized: { name: string; }; session_id: number; error?: string; type: RunType; } export interface LLMRun extends BaseRun { prompts: string[]; response?: LLMResult; } export interface ChainRun extends BaseRun { inputs: ChainValues; outputs?: ChainValues; child_llm_runs: LLMRun[]; child_chain_runs: ChainRun[]; child_tool_runs: ToolRun[]; } export interface ToolRun extends BaseRun { tool_input: string; output?: string; action: string; child_llm_runs: LLMRun[]; child_chain_runs: ChainRun[]; child_tool_runs: ToolRun[]; } export declare abstract class BaseTracer extends BaseCallbackHandler { protected session?: TracerSession; protected runMap: Map; protected executionOrder: number; protected constructor(); abstract loadSession(sessionName: string): Promise; abstract loadDefaultSession(): Promise; protected abstract persistRun(run: LLMRun | ChainRun | ToolRun): Promise; protected abstract persistSession(session: TracerSessionCreate): Promise; newSession(sessionName?: string): Promise; protected _addChildRun(parentRun: ChainRun | ToolRun, childRun: LLMRun | ChainRun | ToolRun): void; protected _startTrace(run: LLMRun | ChainRun | ToolRun): void; protected _endTrace(run: LLMRun | ChainRun | ToolRun): Promise; handleLLMStart(llm: { name: string; }, prompts: string[], runId: string, parentRunId?: string): Promise; handleLLMEnd(output: LLMResult, runId: string): Promise; handleLLMError(error: Error, runId: string): Promise; handleChainStart(chain: { name: string; }, inputs: ChainValues, runId: string, parentRunId?: string): Promise; handleChainEnd(outputs: ChainValues, runId: string): Promise; handleChainError(error: Error, runId: string): Promise; handleToolStart(tool: { name: string; }, input: string, runId: string, parentRunId?: string): Promise; handleToolEnd(output: string, runId: string): Promise; handleToolError(error: Error, runId: string): Promise; } export declare class LangChainTracer extends BaseTracer { name: string; protected endpoint: string; protected headers: Record; constructor(); protected persistRun(run: LLMRun | ChainRun | ToolRun): Promise; protected persistSession(sessionCreate: TracerSessionCreate): Promise; loadSession(sessionName: string): Promise; loadDefaultSession(): Promise; private _handleSessionResponse; copy(): LangChainTracer; }