import { InvocationContext } from './agents/InvocationContext';
import { Event } from './events/Event';
import { LlmRequest } from './models/LlmRequest';
import { LlmResponse } from './models/LlmResponse';
import { Content } from './models/types';
declare class Tracer {
    private serviceName;
    constructor(serviceName: string);
    startAsCurrentSpan(name: string): {
        end: () => void;
    };
}
export declare const tracer: Tracer;
/**
 * Traces tool call.
 *
 * @param args The arguments to the tool call.
 */
export declare function traceToolCall(args: Record<string, any>): void;
/**
 * Traces tool response event.
 *
 * This function records details about the tool response event as attributes on
 * the current OpenTelemetry span.
 *
 * @param invocationContext The invocation context for the current agent run.
 * @param eventId The ID of the event.
 * @param functionResponseEvent The function response event which can be either
 *   merged function response for parallel function calls or individual
 *   function response for sequential function calls.
 */
export declare function traceToolResponse(invocationContext: InvocationContext, eventId: string, functionResponseEvent: Event): void;
/**
 * Traces a call to the LLM.
 *
 * This function records details about the LLM request and response as
 * attributes on the current OpenTelemetry span.
 *
 * @param invocationContext The invocation context for the current agent run.
 * @param eventId The ID of the event.
 * @param llmRequest The LLM request object.
 * @param llmResponse The LLM response object.
 */
export declare function traceCallLlm(invocationContext: InvocationContext, eventId: string, llmRequest: LlmRequest, llmResponse: LlmResponse): void;
/**
 * Traces the sending of data to the agent.
 *
 * This function records details about the data sent to the agent as
 * attributes on the current OpenTelemetry span.
 *
 * @param invocationContext The invocation context for the current agent run.
 * @param eventId The ID of the event.
 * @param data A list of content objects.
 */
export declare function traceSendData(invocationContext: InvocationContext, eventId: string, data: Content[]): void;
export {};
