import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
import { NodeConnectionType } from 'n8n-workflow';
import type { ISupplyDataFunctions } from 'n8n-workflow';
interface RunDetails {
    index: number;
    options: any;
    messages: any;
}
interface TokenUsage {
    completionTokens: number;
    promptTokens: number;
    totalTokens: number;
}
interface TracingOptions {
    tokensUsageParser?: (result: any) => TokenUsage;
    errorDescriptionMapper?: (error: any) => string;
}
export declare class N8nLlmTracing extends BaseCallbackHandler {
    private executionFunctions;
    name: string;
    awaitHandlers: boolean;
    connectionType: NodeConnectionType;
    promptTokensEstimate: number;
    completionTokensEstimate: number;
    private parentRunIndex?;
    runsMap: Record<string, RunDetails>;
    options: TracingOptions;
    constructor(executionFunctions: ISupplyDataFunctions, options?: TracingOptions);
    estimateTokensFromGeneration(generations: any[][]): Promise<number>;
    estimateTokensFromStringList(list: string[]): Promise<number>;
    handleLLMEnd(output: any, runId: string): Promise<void>;
    handleLLMStart(llm: any, prompts: string[], runId: string): Promise<void>;
    handleLLMError(error: any, runId: string, parentRunId?: string): Promise<void>;
    setParentRunIndex(runIndex: number): void;
}
export {};
//# sourceMappingURL=N8nLlmTracing.d.ts.map