import type { ISubscription } from "../reactive"; import type { ITracerError, ITracerErrorData, ITracerLog } from "@apptracer/sdk/lite"; import type { AppTracerSdk, IAppTracerContext, IAppTracerEnvParams, IAppTracerOptions, IComponentName } from "./types"; import type { IError } from "../types"; /** * пара модулей трейсера на componentName: error + log. * модули SDK создаются один раз на имя — повторная инициализация приведет к ошибке */ interface ITracerModules { error: ITracerError; log: ITracerLog; } export declare class AppTracer { protected static readonly tracerModulesMap: Map; protected static appTracerModule: typeof AppTracerSdk | null; protected static loadPromise: Promise | null; private readonly dynamicImportTimeout; private readonly componentName; private readonly subscription; private readonly options; private readonly envParams; private context; private beforeInitLogs; private readonly isEmbed; private readonly embedParent; private beforeInitErrors; /** * Логирование крашей * * на каждый `componentName` создаётся 1 уникальный экземпляр трейсера. * пересоздать его уже будет нельзя */ constructor(componentName: IComponentName, options: IAppTracerOptions, envParams: IAppTracerEnvParams, context?: IAppTracerContext); /** Обновляет контекст динамически. Новые значения будут добавлены к существующим. * ⚠️ у трайсера есть ограничение на длинну значения в 128 ⚠️ */ updateContext(context: IAppTracerContext): void; /** * Добавляет сообщение в лог, который прикладывается к каждому error-репорту. * Лог циклический и ограничен (~64Кб), поэтому пишет в него стоит только важное. */ log(message: string): void; error(error: IError, errorData?: Partial>): void; addSubscription(item: Parameters[0]): void; destroy(): void; private init; private loadModule; } export {};