import { AgentAction, AgentFinish, BaseMessage, ChainValues, LLMResult } from "../schema/index.js"; import { BaseCallbackHandler, CallbackHandlerMethods, NewTokenIndices } from "./base.js"; import { LangChainTracerFields } from "./handlers/tracer_langchain.js"; import { Serialized } from "../load/serializable.js"; import { Document } from "../document.js"; type BaseCallbackManagerMethods = { [K in keyof CallbackHandlerMethods]?: (...args: Parameters[K]>) => Promise; }; export interface CallbackManagerOptions { verbose?: boolean; tracing?: boolean; } export type Callbacks = CallbackManager | (BaseCallbackHandler | CallbackHandlerMethods)[]; export interface BaseCallbackConfig { /** * Tags for this call and any sub-calls (eg. a Chain calling an LLM). * You can use these to filter calls. */ tags?: string[]; /** * Metadata for this call and any sub-calls (eg. a Chain calling an LLM). * Keys should be strings, values should be JSON-serializable. */ metadata?: Record; /** * Callbacks for this call and any sub-calls (eg. a Chain calling an LLM). * Tags are passed to all callbacks, metadata is passed to handle*Start callbacks. */ callbacks?: Callbacks; } export declare function parseCallbackConfigArg(arg: Callbacks | BaseCallbackConfig | undefined): BaseCallbackConfig; export declare abstract class BaseCallbackManager { abstract addHandler(handler: BaseCallbackHandler): void; abstract removeHandler(handler: BaseCallbackHandler): void; abstract setHandlers(handlers: BaseCallbackHandler[]): void; setHandler(handler: BaseCallbackHandler): void; } declare class BaseRunManager { readonly runId: string; protected readonly handlers: BaseCallbackHandler[]; protected readonly inheritableHandlers: BaseCallbackHandler[]; protected readonly tags: string[]; protected readonly inheritableTags: string[]; protected readonly metadata: Record; protected readonly inheritableMetadata: Record; protected readonly _parentRunId?: string | undefined; constructor(runId: string, handlers: BaseCallbackHandler[], inheritableHandlers: BaseCallbackHandler[], tags: string[], inheritableTags: string[], metadata: Record, inheritableMetadata: Record, _parentRunId?: string | undefined); handleText(text: string): Promise; } export declare class CallbackManagerForRetrieverRun extends BaseRunManager implements BaseCallbackManagerMethods { getChild(tag?: string): CallbackManager; handleRetrieverEnd(documents: Document[]): Promise; handleRetrieverError(err: Error | unknown): Promise; } export declare class CallbackManagerForLLMRun extends BaseRunManager implements BaseCallbackManagerMethods { handleLLMNewToken(token: string, idx?: NewTokenIndices, contentType?: string): Promise; handleLLMError(err: Error | unknown): Promise; handleLLMEnd(output: LLMResult): Promise; } export declare class CallbackManagerForChainRun extends BaseRunManager implements BaseCallbackManagerMethods { getChild(tag?: string): CallbackManager; handleChainError(err: Error | unknown): Promise; handleChainEnd(output: ChainValues): Promise; handleAgentAction(action: AgentAction): Promise; handleAgentEnd(action: AgentFinish): Promise; } export declare class CallbackManagerForToolRun extends BaseRunManager implements BaseCallbackManagerMethods { getChild(tag?: string): CallbackManager; handleToolError(err: Error | unknown): Promise; handleToolEnd(output: string): Promise; } export declare class CallbackManager extends BaseCallbackManager implements BaseCallbackManagerMethods { handlers: BaseCallbackHandler[]; inheritableHandlers: BaseCallbackHandler[]; tags: string[]; inheritableTags: string[]; metadata: Record; inheritableMetadata: Record; name: string; private readonly _parentRunId?; constructor(parentRunId?: string); handleLLMStart(llm: Serialized, prompts: string[], _runId?: string | undefined, _parentRunId?: string | undefined, extraParams?: Record | undefined): Promise; handleChatModelStart(llm: Serialized, messages: BaseMessage[][], _runId?: string | undefined, _parentRunId?: string | undefined, extraParams?: Record | undefined): Promise; handleChainStart(chain: Serialized, inputs: ChainValues, runId?: string): Promise; handleToolStart(tool: Serialized, input: string, runId?: string): Promise; handleRetrieverStart(retriever: Serialized, query: string, runId?: string, _parentRunId?: string | undefined): Promise; addHandler(handler: BaseCallbackHandler, inherit?: boolean): void; removeHandler(handler: BaseCallbackHandler): void; setHandlers(handlers: BaseCallbackHandler[], inherit?: boolean): void; addTags(tags: string[], inherit?: boolean): void; removeTags(tags: string[]): void; addMetadata(metadata: Record, inherit?: boolean): void; removeMetadata(metadata: Record): void; copy(additionalHandlers?: BaseCallbackHandler[], inherit?: boolean): CallbackManager; static fromHandlers(handlers: CallbackHandlerMethods): CallbackManager; static configure(inheritableHandlers?: Callbacks, localHandlers?: Callbacks, inheritableTags?: string[], localTags?: string[], inheritableMetadata?: Record, localMetadata?: Record, options?: CallbackManagerOptions): Promise; } export declare class TraceGroup { private groupName; private options?; private runManager?; constructor(groupName: string, options?: { projectName?: string | undefined; exampleId?: string | undefined; } | undefined); private getTraceGroupCallbackManager; start(): Promise; end(): Promise; } export declare function traceAsGroup(groupOptions: { name: string; } & LangChainTracerFields, enclosedCode: (manager: CallbackManager, ...args: A) => Promise, ...args: A): Promise; export {};