import { BacktraceMetricsOptions } from '../../model/configuration/BacktraceConfiguration.js'; import { AttributeType } from '../../model/data/BacktraceData.js'; import { AttributeManager } from '../attribute/AttributeManager.js'; import { BacktraceModule } from '../BacktraceModule.js'; import { BacktraceSessionProvider } from './BacktraceSessionProvider.js'; import { MetricsQueue } from './MetricsQueue.js'; import { SummedEvent } from './model/SummedEvent.js'; import { UniqueEvent } from './model/UniqueEvent.js'; export declare class BacktraceMetrics implements BacktraceModule { private readonly _options; private readonly _sessionProvider; private readonly _attributeManager; private readonly _summedEventsSubmissionQueue; private readonly _uniqueEventsSubmissionQueue; /** * Returns current session id. */ get sessionId(): string; /** * Default metrics submission interval. The variable defines how often metrics will be sent to metrics system. */ readonly DEFAULT_UPDATE_INTERVAL: number; readonly DEFAULT_SERVER_URL = "https://events.backtrace.io"; readonly metricsHost: string; private readonly _updateInterval; private _updateIntervalId?; private readonly _abortController; constructor(_options: BacktraceMetricsOptions, _sessionProvider: BacktraceSessionProvider, _attributeManager: AttributeManager, _summedEventsSubmissionQueue: MetricsQueue, _uniqueEventsSubmissionQueue: MetricsQueue); /** * Starts metrics submission. */ initialize(): void; /** * Returns total number of events in the submission queue. */ count(): number; /** * Add summed event to next Backtrace Metrics request. * @param metricName Summed event name. * @param eventAttributes event attributes. */ addSummedEvent(metricName: string, eventAttributes?: Record): boolean; /** * Sends event to the metrics system. */ send(abortSignal?: AbortSignal): Promise; /** * Cleans up metrics interface. */ dispose(): void; private sendUniqueEvent; /** * Event aggregators expecting to retrieve attributes in a string format. They also * don't expect to retrieve null/undefined as attribute values. */ private convertAttributes; private handleAbort; }