import { LogWriter } from "../writer";
import { Attachment } from "./attachment";
import { EventEmittingBaseContainer } from "./base";
import { Error, ErrorConfig } from "./error";
import { Generation, GenerationConfig } from "./generation";
import { Retrieval, RetrievalConfig } from "./retrieval";
import { Span, SpanConfig } from "./span";
import { ToolCall, ToolCallConfig } from "./toolCall";
export type TraceConfig = {
    id: string;
    name?: string;
    sessionId?: string;
    tags?: Record<string, string>;
};
export declare class Trace extends EventEmittingBaseContainer {
    constructor(config: TraceConfig, writer: LogWriter);
    generation(config: GenerationConfig): Generation;
    static generation_(writer: LogWriter, id: string, config: GenerationConfig): Generation;
    addToSession(sessionId: string): void;
    static addToSession_(writer: LogWriter, id: string, sessionId: string): void;
    feedback(feedback: {
        score: number;
        comment?: string;
    }): void;
    static feedback_(writer: LogWriter, id: string, feedback: {
        score: number;
        comment?: string;
    }): void;
    addAttachment(attachment: Attachment): void;
    static addAttachment_(writer: LogWriter, id: string, attachment: Attachment): void;
    span(config: SpanConfig): Span;
    static span_(writer: LogWriter, id: string, config: SpanConfig): Span;
    error(config: ErrorConfig): Error;
    static error_(writer: LogWriter, id: string, config: ErrorConfig): Error;
    toolCall(config: ToolCallConfig): ToolCall;
    static toolCall_(writer: LogWriter, id: string, config: ToolCallConfig): ToolCall;
    retrieval(config: RetrievalConfig): Retrieval;
    input(input: string): Trace;
    output(output: string): Trace;
    static retrieval_(writer: LogWriter, id: string, config: RetrievalConfig): Retrieval;
    static input_(writer: LogWriter, id: string, input: string): void;
    static output_(writer: LogWriter, id: string, output: string): void;
    static end_(writer: LogWriter, id: string, data?: any): void;
    static addTag_(writer: LogWriter, id: string, key: string, value: string): void;
}
