import type { ITracer, ITracerDynamicImports, ITracerParams, Context, Span, Attributes, ITracerOptions } from "./types"; import { TraceEventType, TracerDynamicImportStatus } from "./types"; import type { Milliseconds } from "../utils"; import { CircularBuffer } from "../utils"; import type { ISubscription } from "../reactive"; interface IBufferedEvent { name: string; attributes?: Attributes; type: TraceEventType; timestamp: Milliseconds; } export declare class Tracer implements ITracer { private readonly dynamicImportTimeout; protected readonly subscription: ISubscription; protected readonly options: ITracerOptions; protected span: Span; protected context: Context; protected childTracers: ITracer[]; protected initPromise: Promise; protected getRootTracerContext: ITracerParams["getRootTracerContext"]; protected eventsBuffer: CircularBuffer | null; protected static dynamicImportStatus: TracerDynamicImportStatus; protected static dynamicImports: ITracerDynamicImports; protected static dynamicImportPromise: Promise; protected constructor({ name, getParentContext, getRootTracerContext, options }: ITracerParams); protected init({ name, getParentContext, getRootTracerContext }: ITracerParams, startTime: Milliseconds): void; private loadOpentelemetry; protected isComponentTracerNotInitialized(): boolean; private addEventToBuffer; private addEventToSpan; /** * Логирует событие. * @param name Название события * @param attributes Атрибуты события * @param persistent Если true — событие сразу записывается в span. * Если false (по умолчанию) — событие попадает в буфер и будет записано в span при вызове end(). * Это позволяет ограничить количество событий в span через tracerEventsBufferSize, * сохраняя только последние N событий и предотвращая превышение лимита атрибутов. */ log(name: string, attributes?: Attributes, persistent?: boolean): void; /** * Логирует ошибку. * @param name Название события * @param attributes Атрибуты события * @param persistent Если true — событие сразу записывается в span. * Если false (по умолчанию) — событие попадает в буфер и будет записано в span при вызове end(). * Это позволяет ограничить количество событий в span через tracerEventsBufferSize, * сохраняя только последние N событий и предотвращая превышение лимита атрибутов. */ error(name: string, attributes?: Attributes, persistent?: boolean): void; /** * Логирует критическое событие. * @param name Название события * @param attributes Атрибуты события * @param persistent Если true — событие сразу записывается в span. * Если false (по умолчанию) — событие попадает в буфер и будет записано в span при вызове end(). * Это позволяет ограничить количество событий в span через tracerEventsBufferSize, * сохраняя только последние N событий и предотвращая превышение лимита атрибутов. */ critical(name: string, attributes?: Attributes, persistent?: boolean): void; createComponentTracer(name: string): ITracer; setSpanAttributes(attributes: Attributes): void; end(): void; pause(): void; resume(): void; } export {};