import { Tracer, Span, Context as OtelContext } from '@opentelemetry/api';
import type { Serialized } from '@langchain/core/load/serializable';
import type { LLMResult } from '@langchain/core/outputs';
import type { ChainValues } from '@langchain/core/utils/types';
import type { BaseMessage } from '@langchain/core/messages';
import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
interface SpanEntry {
    span?: Span;
    context: OtelContext;
    agentSpan?: Span;
}
export declare class OpenTelemetryCallbackHandler extends BaseCallbackHandler {
    name: string;
    awaitHandlers: boolean;
    tracer: Tracer;
    captureMessageContent: boolean;
    shouldSuppressInternalChains: boolean;
    runIdToSpanMap: Map<string, SpanEntry>;
    constructor(tracer: Tracer, captureMessageContent?: boolean, shouldSuppressInternalChains?: boolean);
    handleChatModelStart(serialized: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, _tags?: string[], metadata?: Record<string, unknown>): void;
    handleLLMStart(serialized: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>, _tags?: string[], metadata?: Record<string, unknown>): void;
    handleLLMEnd(response: LLMResult, runId: string, _parentRunId?: string): void;
    handleLLMError(err: Error, runId: string, _parentRunId?: string): void;
    handleChainStart(serialized: 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): void;
    handleChainError(err: Error, runId: string, _parentRunId?: string): void;
    handleToolStart(serialized: Serialized, input: string, runId: string, parentRunId?: string, _tags?: string[], metadata?: Record<string, unknown>, runName?: string, toolCallId?: string): void;
    handleToolEnd(output: unknown, runId: string, _parentRunId?: string): void;
    handleToolError(err: Error, runId: string, _parentRunId?: string): void;
    private _handleError;
    private _startSpan;
    private _endSpan;
    private _shouldSkipChain;
    private _setModelRequestAttributes;
    private _propagateToAgentSpan;
    private _setLanggraphAttributes;
    private static _extractLCName;
    private static _extractModelId;
    private static _extractModelProvider;
    private static _getSerializedConfig;
    private static _formatMessages;
    private static _formatOutputMessages;
    private static _extractTextContent;
    private static _extractFinishReasons;
    private static _extractFinishReason;
    private static _normalizeRole;
    private static _normalizeFinishReason;
    private _setAttribute;
}
export {};
//# sourceMappingURL=callback-handler.d.ts.map