import { BaseCallbackHandler, BaseCallbackHandlerInput } from '@langchain/core/callbacks/base';
import { Serialized } from '@langchain/core/load/serializable';
import { ChainValues } from '@langchain/core/utils/types';
import { J as JsonNode, O as OpikClient } from '../Client-CgkZJ_1L.cjs';
import { RunnableConfig } from '@langchain/core/runnables';
import { LLMResult, ChatResult } from '@langchain/core/outputs';
import { BaseMessage } from '@langchain/core/messages';
import { AgentAction, AgentFinish } from '@langchain/core/agents';
import 'stream';

interface OpikCallbackHandlerOptions {
    tags?: [];
    metadata?: JsonNode;
    projectName?: string;
    client?: OpikClient;
}
declare class OpikCallbackHandler extends BaseCallbackHandler implements BaseCallbackHandlerInput {
    name: string;
    private options;
    private client;
    private rootTraceId?;
    private rootTrace?;
    private spansMap;
    constructor(options?: Partial<OpikCallbackHandlerOptions>);
    private startTracing;
    private endTracing;
    handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: {
        options: RunnableConfig;
        invocation_params?: Record<string, unknown>;
        batch_size: number;
        cache?: boolean;
    }, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
    handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: {
        options: RunnableConfig;
        invocation_params?: Record<string, unknown>;
        batch_size: number;
        cache?: boolean;
    }, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
    handleLLMError(error: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleLLMEnd(output: LLMResult | ChatResult, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleChainStart(chain: Serialized, input: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runType?: string, runName?: string): Promise<void>;
    handleChainError(error: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleChainEnd(output: ChainValues, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, runName?: string): Promise<void>;
    handleToolError(error: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleToolEnd(output: unknown, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleAgentAction(action: AgentAction, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleAgentEnd(action: AgentFinish, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: Record<string, unknown>, name?: string): Promise<void>;
    handleRetrieverEnd(documents: unknown[], runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    handleRetrieverError(error: Error, runId: string, parentRunId?: string, tags?: string[]): Promise<void>;
    flushAsync(): Promise<void>;
}

export { OpikCallbackHandler };
