import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
import { MaximLogger } from "@maximai/maxim-js";
type HandleLLMStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMStart"]>>;
type HandleLLMEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMEnd"]>>;
type HandleLLMErrorParameters = Parameters<NonNullable<BaseCallbackHandler["handleLLMError"]>>;
type HandleChatModelStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleChatModelStart"]>>;
type HandleRetrieverStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleRetrieverStart"]>>;
type HandleRetrieverEndParameters = Parameters<NonNullable<BaseCallbackHandler["handleRetrieverEnd"]>>;
type HandleChainStartParameters = Parameters<NonNullable<BaseCallbackHandler["handleChainStart"]>>;
type Serialized = HandleLLMStartParameters[0];
type ChainValues = HandleChainStartParameters[1];
export declare class MaximLangchainTracer extends BaseCallbackHandler {
    private readonly logger;
    name: string;
    private containers;
    constructor(logger: MaximLogger, debug?: boolean);
    private validateMaximMetadata;
    private getMetadata;
    private getContainerFromMetadata;
    private getContainer;
    handleLLMStart(llm: Serialized, prompts: HandleLLMStartParameters[1], runId: HandleLLMStartParameters[2], parentRunId?: HandleLLMStartParameters[3], extraParams?: HandleLLMStartParameters[4], tags?: HandleLLMStartParameters[5], metadata?: HandleLLMStartParameters[6], name?: HandleLLMStartParameters[7]): Promise<void>;
    handleLLMEnd(output: HandleLLMEndParameters[0], runId: HandleLLMEndParameters[1], parentRunId?: HandleLLMEndParameters[2], tags?: HandleLLMEndParameters[3]): void;
    handleLLMError(err: HandleLLMErrorParameters[0], runId: HandleLLMErrorParameters[1], parentRunId?: HandleLLMErrorParameters[2], tags?: HandleLLMErrorParameters[3]): void;
    handleChatModelStart(llm: Serialized, messages: HandleChatModelStartParameters[1], runId: HandleChatModelStartParameters[2], parentRunId?: HandleChatModelStartParameters[3], extraParams?: HandleChatModelStartParameters[4], tags?: HandleChatModelStartParameters[5], metadata?: HandleChatModelStartParameters[6], runName?: HandleChatModelStartParameters[7]): Promise<void>;
    handleRetrieverStart(retriever: Serialized, query: HandleRetrieverStartParameters[1], runId: HandleRetrieverStartParameters[2], parentRunId?: HandleRetrieverStartParameters[3], tags?: HandleRetrieverStartParameters[4], metadata?: HandleRetrieverStartParameters[5], name?: HandleRetrieverStartParameters[6]): void;
    handleRetrieverEnd(documents: HandleRetrieverEndParameters[0], runId: HandleRetrieverEndParameters[1], parentRunId?: HandleRetrieverEndParameters[2], tags?: HandleRetrieverEndParameters[3]): void;
    handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runType?: string, runName?: string): void;
    handleChainEnd(outputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], kwargs?: {
        inputs?: Record<string, unknown>;
    }): void;
    handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): void;
    handleToolEnd(output: any, runId: string, parentRunId?: string, tags?: string[]): void;
    handleToolError(error: any, runId: string, parentRunId?: string, tags?: string[]): void;
}
export {};
