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 { ToolCall, ToolCallConfig } from "./toolCall";
export type SpanConfig = {
    id: string;
    name?: string;
    tags?: Record<string, string>;
};
export declare class Span extends EventEmittingBaseContainer {
    constructor(config: SpanConfig, writer: LogWriter);
    generation(config: GenerationConfig): Generation;
    static generation_(writer: LogWriter, id: string, config: GenerationConfig): Generation;
    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;
    retrieval(config: RetrievalConfig): Retrieval;
    static retrieval_(writer: LogWriter, id: string, config: RetrievalConfig): Retrieval;
    toolCall(config: ToolCallConfig): ToolCall;
    static toolCall_(writer: LogWriter, id: string, config: ToolCallConfig): ToolCall;
    addAttachment(attachment: Attachment): void;
    static addAttachment_(writer: LogWriter, id: string, attachment: Attachment): void;
    static end_(writer: LogWriter, id: string, data?: any): void;
    static addTag_(writer: LogWriter, id: string, key: string, value: string): void;
}
