import * as _opentelemetry_api from '@opentelemetry/api'; import { Span, DiagLogger, Meter, MeterProvider, TracerProvider, Tracer, Attributes, ContextManager, TextMapPropagator, DiagLogLevel, Context } from '@opentelemetry/api'; import { InstrumentationConfig, Instrumentation } from '@opentelemetry/instrumentation'; import { Resource, ResourceDetector, DetectedResourceAttributes } from '@opentelemetry/resources'; import { Sampler, SpanProcessor, SpanExporter, SpanLimits, IdGenerator } from '@opentelemetry/sdk-trace-base'; import { PushMetricExporter } from '@opentelemetry/sdk-metrics'; import { LogRecordExporter } from '@opentelemetry/sdk-logs'; import { SessionProvider } from '@opentelemetry/web-common'; import { Metric, ReportOpts, CLSMetricWithAttribution, LCPMetricWithAttribution, INPMetricWithAttribution, FCPMetricWithAttribution, TTFBMetricWithAttribution } from 'web-vitals/attribution'; export { UserInteractionInstrumentation } from './experimental/index.js'; type ApplyCustomAttributesFn = (vital: Metric, span: Span) => void; interface VitalOpts extends ReportOpts { /** * Callback function to add custom attributes to web vitals span. * @example * (vital, span) => { * // a value under 3000ms is acceptable as a 'good' rating for our team * // this would otherwise show up as 'needs-improvement' if the value is less than 2500 in 'lcp.rating' according to the * // set standards but we want to record this as well. * if (vital.value < 3000) { * span.setAttribute('lcp.custom_rating', 'good'); * } * } */ applyCustomAttributes?: ApplyCustomAttributesFn; } interface ClsVitalOpts extends VitalOpts { /** * Will filter the values of these data attributes if provided, otherwise will send all data-* attributes an LCP entry * An empty allow list, such as { dataAttributes: [] } will disable sending data-* attributes */ dataAttributes?: string[]; } interface LcpVitalOpts extends VitalOpts { /** * Will filter the values of these data attributes if provided, otherwise will send all data-* attributes an LCP entry * An empty allow list, such as { dataAttributes: [] } will disable sending data-* attributes */ dataAttributes?: string[]; } interface InpVitalOpts extends VitalOpts { /** * if this is true it will create spans from the PerformanceLongAnimationFrameTiming frames */ includeTimingsAsSpans?: boolean; /** * Will filter the values of these data attributes if provided, otherwise will send all data-* attributes an INP entry * An empty allow list, such as { dataAttributes: [] } will disable sending data-* attributes */ dataAttributes?: string[]; } declare abstract class InstrumentationAbstract implements Instrumentation { readonly instrumentationName: string; readonly instrumentationVersion: string; protected _config: InstrumentationConfig; private _tracer; private _meter; protected _diag: DiagLogger; constructor(instrumentationName: string, instrumentationVersion: string, config?: InstrumentationConfig); protected _wrap: (nodule: Nodule, name: FieldName, wrapper: (original: Nodule[FieldName]) => Nodule[FieldName]) => void; protected _unwrap: (nodule: Nodule, name: keyof Nodule) => void; protected _massWrap: (nodules: Nodule[], names: FieldName[], wrapper: (original: Nodule[FieldName]) => Nodule[FieldName]) => void; protected _massUnwrap: (nodules: Nodule[], names: Array) => void; protected get meter(): Meter; /** * Sets MeterProvider to this plugin * @param meterProvider */ setMeterProvider(meterProvider: MeterProvider): void; /** * Sets the new metric instruments with the current Meter. */ protected _updateMetricInstruments(): void; getConfig(): InstrumentationConfig; /** * Sets InstrumentationConfig to this plugin * @param InstrumentationConfig */ setConfig(config?: InstrumentationConfig): void; /** * Sets TraceProvider to this plugin * @param tracerProvider */ setTracerProvider(tracerProvider: TracerProvider): void; protected get tracer(): Tracer; abstract enable(): void; abstract disable(): void; /** * Init method in which plugin should define _modules and patches for * methods */ protected abstract init(): void; } interface WebVitalsInstrumentationConfig extends InstrumentationConfig { /** Array of web vitals to send spans for, defaults to ["CLS", "LCP", "INP"] if not specified. */ vitalsToTrack?: Array; /** Config specific to LCP (Largest Contentful Paint) */ lcp?: LcpVitalOpts; /** Config specific to CLS (Cumulative Layout Shift) */ cls?: ClsVitalOpts; /** Config specific to INP (Interaction to Next Paint) */ inp?: InpVitalOpts; /** Config specific to FCP (First Contentful Paint) */ fcp?: VitalOpts; /** Config specific to TTFB (Time To First Byte) */ ttfb?: VitalOpts; } /** * Web vitals auto-instrumentation, sends spans automatically for CLS, LCP, INP, FCP, TTFB. * Defaults to sending spans for CLS, LCP, INP, FCP and TTFB. * @param config The {@link WebVitalsInstrumentationConfig } */ declare class WebVitalsInstrumentation extends InstrumentationAbstract { readonly vitalsToTrack: Array; readonly lcpOpts?: LcpVitalOpts; readonly clsOpts?: VitalOpts; readonly inpOpts?: InpVitalOpts; readonly fcpOpts?: VitalOpts; readonly ttfbOpts?: VitalOpts; private _isEnabled; constructor({ enabled, vitalsToTrack, lcp, cls, inp, fcp, ttfb, }?: WebVitalsInstrumentationConfig); init(): void; private _setupWebVitalsCallbacks; private getAttributesForPerformanceLongAnimationFrameTiming; private getAttributesForPerformanceScriptTiming; private processPerformanceLongAnimationFrameTimingSpans; private processPerformanceScriptTimingSpans; private getElementFromNode; private addDataAttributes; onReportCLS: (cls: CLSMetricWithAttribution, clsOpts?: ClsVitalOpts) => void; onReportLCP: (lcp: LCPMetricWithAttribution, lcpOpts?: LcpVitalOpts) => void; onReportINP: (inp: INPMetricWithAttribution, inpOpts?: InpVitalOpts) => void; onReportFCP: (fcp: FCPMetricWithAttribution, fcpOpts?: VitalOpts) => void; onReportTTFB: (ttfb: TTFBMetricWithAttribution, ttfbOpts?: VitalOpts) => void; disable(): void; enable(): void; isEnabled(): boolean; } type ApplyCustomErrorAttributesOnSpanFn = (span: Span, error: Error) => void; /** * Records an exception as a span in the OpenTelemetry tracer. * * @param {Error} error - The error object to record. * @param {Attributes} [attributes={}] - Additional attributes to add to the span. * @param {Tracer} [tracer=trace.getTracer(LIBRARY_NAME)] - The tracer to use for recording the span. * @param {ApplyCustomErrorAttributesOnSpanFn} applyCustomAttributesOnSpan - Callback function to add custom attributes to the span and mutate the span. */ declare function recordException(error: Error, attributes?: Attributes, tracer?: Tracer, applyCustomAttributesOnSpan?: ApplyCustomErrorAttributesOnSpanFn): void; interface GlobalErrorsInstrumentationConfig extends InstrumentationConfig { /** * A callback function for adding custom attributes to the span when an error is recorded. * * @param {Span} span - The span to which custom attributes will be added. * @param {Error} error - The error object that is being recorded. */ applyCustomAttributesOnSpan?: ApplyCustomErrorAttributesOnSpanFn; } /** * Global errors auto-instrumentation, sends spans automatically for exceptions that reach the window. * @param config The {@link GlobalErrorsInstrumentationConfig} */ declare class GlobalErrorsInstrumentation extends InstrumentationAbstract { private _isEnabled; readonly applyCustomAttributesOnSpan?: ApplyCustomErrorAttributesOnSpanFn; constructor({ enabled, applyCustomAttributesOnSpan, }?: GlobalErrorsInstrumentationConfig); onError: (event: ErrorEvent | PromiseRejectionEvent) => void; init(): void; disable(): void; enable(): void; isEnabled(): boolean; } interface WebSDKConfiguration { autoDetectResources: boolean; contextManager: ContextManager; textMapPropagator: TextMapPropagator; instrumentations: (Instrumentation | Instrumentation[])[]; resource: Resource; resourceDetectors: Array; sampler: Sampler; serviceName?: string; serviceVersion?: string; spanProcessor?: SpanProcessor; spanProcessors?: SpanProcessor[]; timeout?: number; tracesTimeout?: number; metricsTimeout?: number; disableDefaultMetricExporter?: boolean; logsTimeout?: number; traceExporter: SpanExporter; spanLimits: SpanLimits; idGenerator: IdGenerator; metricExporters: PushMetricExporter[]; logExporters: LogRecordExporter[]; } /** * The options used to configure the Honeycomb Web SDK. */ interface HoneycombOptions extends Partial { /** Honeycomb API key for sending traces directly to Honeycomb */ apiKey?: string; /** Honeycomb API key for sending traces telemetry to Honeycomb. Defaults to apiKey if not set. */ tracesApiKey?: string; /** Honeycomb API key for sending metrics telemetry to Honeycomb. Defaults to apiKey if not set. */ metricsApiKey?: string; /** Honeycomb API key for sending logs telemetry to Honeycomb. Defaults to apiKey if not set. */ logsApiKey?: string; /** The API endpoint where telemetry is sent. Defaults to 'https://api.honeycomb.io/v1/traces'. * Appends `/v1/traces` to the endpoint provided. */ endpoint?: string; /** The API endpoint where traces telemetry is sent. Defaults to endpoint if not set. */ tracesEndpoint?: string; /** The API endpoint where metrics telemetry is sent. Defaults to endpoint if not set. */ metricsEndpoint?: string; /** The API endpoint where logs telemetry is sent. Defaults to endpoint if not set. */ logsEndpoint?: string; /** Optionally pass extra headers to the exporter. Commonly used if sending to a collector that requires authentication */ headers?: { [key: string]: string; }; /** Optionally pass extra headers to the exporter. Commonly used if sending to a collector that requires authentication */ tracesHeaders?: { [key: string]: string; }; /** Optionally pass extra headers to the exporter. Commonly used if sending to a collector that requires authentication */ metricsHeaders?: { [key: string]: string; }; /** Optionally pass extra headers to the exporter. Commonly used if sending to a collector that requires authentication */ logsHeaders?: { [key: string]: string; }; /** The dataset where traces telemetry is stored in Honeycomb. Only required when using a classic API key. * https://docs.honeycomb.io/honeycomb-classic/#am-i-using-honeycomb-classic */ dataset?: string; /** The dataset where metrics telemetry is stored in Honeycomb. Only required when using a classic API key. * https://docs.honeycomb.io/honeycomb-classic/#am-i-using-honeycomb-classic */ metricsDataset?: string; /** The service name of the application and where traces telemetry is stored in Honeycomb. * Defaults to `unknown_service` */ serviceName?: string; /** Optionally pass the service version of the application. */ serviceVersion?: string; /** Provide an array of span processors that should be applied to all spans. * Use this to specify synchronous hooks that can add to a span once the span is started or ended. * The processors will be applied in the order they are specified. * E.g. adding attributes to a span. */ spanProcessors?: SpanProcessor[]; /** Timeout used by exporters when sending data. Defaults to 10000ms (10 seconds). */ timeout?: number; /** Timeout used by the traces exporter when sending data. Overrides timeout for trace data. */ tracesTimeout?: number; /** Timeout used by the metrics exporter when sending data. Overrides timeout for metric data. */ metricsTimeout?: number; /** Timeout used by the logs exporter when sending data. Overrides timeout for log data. */ logsTimeout?: number; /** Provide an array of metric exporters * Use this to configure custom tracing services in addition * to the default Honeycomb one. * E.g. You want to send data to another service. */ metricExporters?: PushMetricExporter[]; /** Disable the default Honeycomb MetricExporter * `true` Disables the default Honeycomb metric exporter, `false` enables. * Defaults to 'false'. */ disableDefaultMetricExporter?: boolean; /** Provide an array of exporters * Use this to configure custom tracing services in addition * to the default Honeycomb one. * E.g. You want to send data to another service. */ traceExporters?: SpanExporter[]; /** Disable the default Honeycomb SpanExporters * `true` Disables the default Honeycomb span exporter, `false` enables. * in this case you should provide other exporters in the `traceExporters` field. * Defaults to 'false'. */ disableDefaultTraceExporter?: boolean; /** The sample rate used to determine whether a trace is exported. * This must be a whole positive number. Only 1 out of every `sampleRate` traces will be randomly selected to be sent. * Set to 0 to drop everything. * Defaults to 1 (send everything). */ sampleRate?: number; /** The debug flag enables additional logging that is useful when debugging your application. Do not use in production. * Defaults to 'false'. */ debug?: boolean; /** Additional attributes, will be included as fields on all data */ resourceAttributes?: DetectedResourceAttributes; /** Prevents attaching automatically-derived browser-derived attributes to signals. */ disableBrowserAttributes?: boolean; /** The local visualizations flag enables logging Honeycomb URLs for completed traces. Do not use in production. * Defaults to 'false'. */ localVisualizations?: boolean; /** Skip options validation warnings (eg no API key configured). This is useful when the SDK is being * used in conjunction with an OpenTelemetry Collector (which will handle the API key and dataset configuration). * Defaults to 'false'. */ skipOptionsValidation?: boolean; /** Configuration for entry page attributes: set to false to disable entirely, or pass in a custom config * to fine-tune the included attributes. * * Defaults to * ``` * { * path: true, * hash: true, * hostname: true, * referrer: true, * url: false, * search: false * } * ``` */ entryPageAttributes?: false | EntryPageConfig; /** Config options for web vitals instrumentation. Enabled by default. */ webVitalsInstrumentationConfig?: WebVitalsInstrumentationConfig; globalErrorsInstrumentationConfig?: GlobalErrorsInstrumentationConfig; /** * Controls the verbosity of logs. Utilizes OpenTelemetry's `DiagLogLevel` enum. Defaults to 'DEBUG'. * Current options include 'NONE', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'VERBOSE', and 'ALL'. */ logLevel?: DiagLogLevel; /** Optionally provide a session provider to generate session ids for the session span processor. */ sessionProvider?: SessionProvider; } type EntryPageConfig = { /** Include the path: '/working-with-your-data/overview/' * Defaults to 'true' */ path?: boolean; /** Include the hash: '#view-events' * Defaults to 'true' */ hash?: boolean; /** Include the hostname: 'docs.honeycomb.io' * Defaults to 'true' */ hostname?: boolean; /** Include the document.referrer: 'https://example.com/page-with-referring-link' * Defaults to 'true' */ referrer?: boolean; /** Include the full url. * 'https://docs.honeycomb.io/working-with-your-data/overview/#view-events?page=2' * * Defaults to 'false' */ url?: boolean; /** Include the search params: '?page=2' * Defaults to 'false' */ search?: boolean; }; /** This class represents everything needed to register a fully configured OpenTelemetry Web SDK */ declare class WebSDK { private _tracerProviderConfig?; private _meterProviderConfig?; private _loggerProviderConfig?; private _instrumentations; private _resource; private _resourceDetectors; private _autoDetectResources; private _tracerProvider?; private _meterProvider?; private _loggerProvider?; private _serviceName?; private _serviceVersion?; private _disabled?; /** * Create a new Web SDK instance */ constructor(configuration?: Partial); /** * Call this method to construct SDK components and register them with the OpenTelemetry API. */ start(): void; getResourceAttributes(): _opentelemetry_api.Attributes; forceFlush(): Promise; shutdown(): Promise; } declare class HoneycombWebSDK extends WebSDK { constructor(options?: HoneycombOptions); } /** * A {@link SpanProcessor} that reads entries stored in {@link Baggage} * from the parent context and adds the baggage entries' keys and values * to the span as attributes on span start. * * Keys and values added to Baggage will appear on subsequent child * spans for a trace within this service *and* be propagated to external * services in accordance with any configured propagation formats * configured. If the external services also have a Baggage span * processor, the keys and values will appear in those child spans as * well. * * ⚠ Warning ⚠️ * * Do not put sensitive information in Baggage. * * To repeat: a consequence of adding data to Baggage is that the keys and * values will appear in all outgoing HTTP headers from the application. */ declare class BaggageSpanProcessor implements SpanProcessor { constructor(); onStart(span: Span, parentContext: Context): void; onEnd(): void; forceFlush(): Promise; shutdown(): Promise; } /** * Custom semantic attribute constants for the Honeycomb OpenTelemetry Web SDK. * These attributes extend the standard OpenTelemetry semantic conventions with * Honeycomb-specific and browser-specific attributes. * * https://github.com/open-telemetry/semantic-conventions/tree/main/model/browser */ /** * The name of the browser. * @example "Chrome", "Firefox", "Safari" */ declare const ATTR_BROWSER_NAME = "browser.name"; /** * The version of the browser. * @example "95.0.4638.54" */ declare const ATTR_BROWSER_VERSION = "browser.version"; /** * Whether the browser has touch screen capabilities. * @example true, false */ declare const ATTR_BROWSER_TOUCH_SCREEN_ENABLED = "browser.touch_screen_enabled"; /** * The current width of the browser viewport in pixels. * @example 1024 */ declare const ATTR_BROWSER_WIDTH = "browser.width"; /** * The current height of the browser viewport in pixels. * @example 768 */ declare const ATTR_BROWSER_HEIGHT = "browser.height"; /** * The type of device. * @example "desktop", "mobile", "tablet" */ declare const ATTR_DEVICE_TYPE = "device.type"; /** * The effective network connection type. * @example "4g", "3g", "2g", "slow-2g", "unknown" */ declare const ATTR_NETWORK_EFFECTIVE_TYPE = "network.effectiveType"; /** * The width of the screen in pixels. * @example 1920 */ declare const ATTR_SCREEN_WIDTH = "screen.width"; /** * The height of the screen in pixels. * @example 1080 */ declare const ATTR_SCREEN_HEIGHT = "screen.height"; /** * The computed screen size category based on width. * @example "small", "medium", "large", "unknown" */ declare const ATTR_SCREEN_SIZE = "screen.size"; /** * The current page URL hash fragment. * @example "#section1" */ declare const ATTR_PAGE_HASH = "page.hash"; /** * The current page full URL. * @example "https://example.com/path?query=value#hash" */ declare const ATTR_PAGE_URL = "page.url"; /** * The current page route/pathname. * @example "/products/123" */ declare const ATTR_PAGE_ROUTE = "page.route"; /** * The current page hostname. * @example "example.com" */ declare const ATTR_PAGE_HOSTNAME = "page.hostname"; /** * The current page search parameters. * @example "?query=value&sort=asc" */ declare const ATTR_PAGE_SEARCH = "page.search"; /** * The current URL path. * @example "/products/123" */ declare const ATTR_URL_PATH = "url.path"; /** * The URL of the entry page (page where the session started). * @example "https://example.com/landing?utm_source=google" */ declare const ATTR_ENTRY_PAGE_URL = "entry_page.url"; /** * The path of the entry page (page where the session started). * @example "/landing" */ declare const ATTR_ENTRY_PAGE_PATH = "entry_page.path"; /** * The search parameters of the entry page. * @example "?utm_source=google&utm_medium=cpc" */ declare const ATTR_ENTRY_PAGE_SEARCH = "entry_page.search"; /** * The hash fragment of the entry page. * @example "#welcome" */ declare const ATTR_ENTRY_PAGE_HASH = "entry_page.hash"; /** * The hostname of the entry page. * @example "example.com" */ declare const ATTR_ENTRY_PAGE_HOSTNAME = "entry_page.hostname"; /** * The referrer URL that led to the entry page. * @example "https://google.com/search?q=example" */ declare const ATTR_ENTRY_PAGE_REFERRER = "entry_page.referrer"; /** * The version of the Honeycomb distribution. * @example "1.2.3" */ declare const ATTR_HONEYCOMB_DISTRO_VERSION = "honeycomb.distro.version"; /** * The runtime version of the Honeycomb distribution. * @example "browser" */ declare const ATTR_HONEYCOMB_DISTRO_RUNTIME_VERSION = "honeycomb.distro.runtime_version"; /** * CLS metric ID. * @example "v1-123456789" */ declare const ATTR_CLS_ID = "cls.id"; /** * CLS metric value. * @example 0.123 */ declare const ATTR_CLS_VALUE = "cls.value"; /** * CLS metric delta. * @example 0.045 */ declare const ATTR_CLS_DELTA = "cls.delta"; /** * CLS metric rating. * @example "good", "needs-improvement", "poor" */ declare const ATTR_CLS_RATING = "cls.rating"; /** * CLS navigation type. * @example "navigate", "reload", "back-forward" */ declare const ATTR_CLS_NAVIGATION_TYPE = "cls.navigation_type"; /** * LCP metric ID. * @example "v1-123456789" */ declare const ATTR_LCP_ID = "lcp.id"; /** * LCP metric value. * @example 1234.56 */ declare const ATTR_LCP_VALUE = "lcp.value"; /** * LCP metric delta. * @example 123.45 */ declare const ATTR_LCP_DELTA = "lcp.delta"; /** * LCP metric rating. * @example "good", "needs-improvement", "poor" */ declare const ATTR_LCP_RATING = "lcp.rating"; /** * LCP navigation type. * @example "navigate", "reload", "back-forward" */ declare const ATTR_LCP_NAVIGATION_TYPE = "lcp.navigation_type"; /** * INP metric ID. * @example "v1-123456789" */ declare const ATTR_INP_ID = "inp.id"; /** * INP metric value. * @example 89.12 */ declare const ATTR_INP_VALUE = "inp.value"; /** * INP metric delta. * @example 23.45 */ declare const ATTR_INP_DELTA = "inp.delta"; /** * INP metric rating. * @example "good", "needs-improvement", "poor" */ declare const ATTR_INP_RATING = "inp.rating"; /** * INP navigation type. * @example "navigate", "reload", "back-forward" */ declare const ATTR_INP_NAVIGATION_TYPE = "inp.navigation_type"; /** * FCP metric ID. * @example "v1-123456789" */ declare const ATTR_FCP_ID = "fcp.id"; /** * FCP metric value. * @example 678.90 */ declare const ATTR_FCP_VALUE = "fcp.value"; /** * FCP metric delta. * @example 67.89 */ declare const ATTR_FCP_DELTA = "fcp.delta"; /** * FCP metric rating. * @example "good", "needs-improvement", "poor" */ declare const ATTR_FCP_RATING = "fcp.rating"; /** * FCP navigation type. * @example "navigate", "reload", "back-forward" */ declare const ATTR_FCP_NAVIGATION_TYPE = "fcp.navigation_type"; /** * TTFB metric ID. * @example "v1-123456789" */ declare const ATTR_TTFB_ID = "ttfb.id"; /** * TTFB metric value. * @example 234.56 */ declare const ATTR_TTFB_VALUE = "ttfb.value"; /** * TTFB metric delta. * @example 34.56 */ declare const ATTR_TTFB_DELTA = "ttfb.delta"; /** * TTFB metric rating. * @example "good", "needs-improvement", "poor" */ declare const ATTR_TTFB_RATING = "ttfb.rating"; /** * TTFB navigation type. * @example "navigate", "reload", "back-forward" */ declare const ATTR_TTFB_NAVIGATION_TYPE = "ttfb.navigation_type"; /** * The largest shift target element for CLS. * @example "div.main-content" */ declare const ATTR_CLS_LARGEST_SHIFT_TARGET = "cls.largest_shift_target"; /** * The element that caused the largest shift for CLS. * @example "div.main-content" */ declare const ATTR_CLS_ELEMENT = "cls.element"; /** * The time when the largest shift occurred for CLS. * @example 1234.56 */ declare const ATTR_CLS_LARGEST_SHIFT_TIME = "cls.largest_shift_time"; /** * The value of the largest shift for CLS. * @example 0.123 */ declare const ATTR_CLS_LARGEST_SHIFT_VALUE = "cls.largest_shift_value"; /** * The load state when CLS occurred. * @example "complete", "loading" */ declare const ATTR_CLS_LOAD_STATE = "cls.load_state"; /** * Whether there was recent input before the CLS. * @example true, false */ declare const ATTR_CLS_HAD_RECENT_INPUT = "cls.had_recent_input"; /** * The element that was the largest contentful paint. * @example "img.hero-image" */ declare const ATTR_LCP_ELEMENT = "lcp.element"; /** * The URL of the resource for LCP. * @example "https://example.com/hero.jpg" */ declare const ATTR_LCP_URL = "lcp.url"; /** * Time to first byte for LCP. * @example 123.45 */ declare const ATTR_LCP_TIME_TO_FIRST_BYTE = "lcp.time_to_first_byte"; /** * Resource load delay for LCP. * @example 45.67 */ declare const ATTR_LCP_RESOURCE_LOAD_DELAY = "lcp.resource_load_delay"; /** * Resource load duration for LCP. * @example 89.12 */ declare const ATTR_LCP_RESOURCE_LOAD_DURATION = "lcp.resource_load_duration"; /** * Element render delay for LCP. * @example 12.34 */ declare const ATTR_LCP_ELEMENT_RENDER_DELAY = "lcp.element_render_delay"; /** * Resource load time for LCP (deprecated, use resource_load_duration). * @example 89.12 * @deprecated Use ATTR_LCP_RESOURCE_LOAD_DURATION instead */ declare const ATTR_LCP_RESOURCE_LOAD_TIME = "lcp.resource_load_time"; /** * Input delay for INP. * @example 12.34 */ declare const ATTR_INP_INPUT_DELAY = "inp.input_delay"; /** * Interaction target for INP. * @example "button.submit" */ declare const ATTR_INP_INTERACTION_TARGET = "inp.interaction_target"; /** * Interaction time for INP. * @example 1234567890123 */ declare const ATTR_INP_INTERACTION_TIME = "inp.interaction_time"; /** * Interaction type for INP. * @example "click", "keydown" */ declare const ATTR_INP_INTERACTION_TYPE = "inp.interaction_type"; /** * Load state when INP occurred. * @example "complete", "loading" */ declare const ATTR_INP_LOAD_STATE = "inp.load_state"; /** * Next paint time for INP. * @example 1234567890234 */ declare const ATTR_INP_NEXT_PAINT_TIME = "inp.next_paint_time"; /** * Presentation delay for INP. * @example 23.45 */ declare const ATTR_INP_PRESENTATION_DELAY = "inp.presentation_delay"; /** * Processing duration for INP. * @example 34.56 */ declare const ATTR_INP_PROCESSING_DURATION = "inp.processing_duration"; /** * Total duration for INP. * @example 70.35 */ declare const ATTR_INP_DURATION = "inp.duration"; /** * Element for INP (deprecated, use interaction_target). * @example "button.submit" * @deprecated Use ATTR_INP_INTERACTION_TARGET instead */ declare const ATTR_INP_ELEMENT = "inp.element"; /** * Event type for INP (deprecated, use interaction_type). * @example "click" * @deprecated Use ATTR_INP_INTERACTION_TYPE instead */ declare const ATTR_INP_EVENT_TYPE = "inp.event_type"; /** * Script entry type for INP timing. * @example "script" */ declare const ATTR_INP_SCRIPT_ENTRY_TYPE = "inp.timing.script.entry_type"; /** * Script start time for INP timing. * @example 1234567890123 */ declare const ATTR_INP_SCRIPT_START_TIME = "inp.timing.script.start_time"; /** * Script execution start for INP timing. * @example 1234567890125 */ declare const ATTR_INP_SCRIPT_EXECUTION_START = "inp.timing.script.execution_start"; /** * Script duration for INP timing. * @example 45.67 */ declare const ATTR_INP_SCRIPT_DURATION = "inp.timing.script.duration"; /** * Script forced style and layout duration for INP timing. * @example 12.34 */ declare const ATTR_INP_SCRIPT_FORCED_STYLE_AND_LAYOUT_DURATION = "inp.timing.script.forced_style_and_layout_duration"; /** * Script invoker for INP timing. * @example "event-listener" */ declare const ATTR_INP_SCRIPT_INVOKER = "inp.timing.script.invoker"; /** * Script pause duration for INP timing. * @example 5.67 */ declare const ATTR_INP_SCRIPT_PAUSE_DURATION = "inp.timing.script.pause_duration"; /** * Script source URL for INP timing. * @example "https://example.com/script.js" */ declare const ATTR_INP_SCRIPT_SOURCE_URL = "inp.timing.script.source_url"; /** * Script source function name for INP timing. * @example "handleClick" */ declare const ATTR_INP_SCRIPT_SOURCE_FUNCTION_NAME = "inp.timing.script.source_function_name"; /** * Script source character position for INP timing. * @example 123 */ declare const ATTR_INP_SCRIPT_SOURCE_CHAR_POSITION = "inp.timing.script.source_char_position"; /** * Script window attribution for INP timing. * @example "self" */ declare const ATTR_INP_SCRIPT_WINDOW_ATTRIBUTION = "inp.timing.script.window_attribution"; /** * Long animation frame duration for INP timing. * @example 123.45 */ declare const ATTR_INP_TIMING_DURATION = "inp.timing.duration"; /** * Long animation frame entry type for INP timing. * @example "long-animation-frame" */ declare const ATTR_INP_TIMING_ENTRY_TYPE = "inp.timing.entryType"; /** * Long animation frame name for INP timing. * @example "same-origin-descendant" */ declare const ATTR_INP_TIMING_NAME = "inp.timing.name"; /** * Long animation frame render start for INP timing. * @example 1234567890234 */ declare const ATTR_INP_TIMING_RENDER_START = "inp.timing.renderStart"; /** * Long animation frame start time for INP timing. * @example 1234567890123 */ declare const ATTR_INP_TIMING_START_TIME = "inp.timing.startTime"; /** * Time to first byte for FCP. * @example 123.45 */ declare const ATTR_FCP_TIME_TO_FIRST_BYTE = "fcp.time_to_first_byte"; /** * Time since first byte for FCP. * @example 67.89 */ declare const ATTR_FCP_TIME_SINCE_FIRST_BYTE = "fcp.time_since_first_byte"; /** * Load state when FCP occurred. * @example "complete", "loading" */ declare const ATTR_FCP_LOAD_STATE = "fcp.load_state"; /** * Waiting duration for TTFB. * @example 45.67 */ declare const ATTR_TTFB_WAITING_DURATION = "ttfb.waiting_duration"; /** * DNS duration for TTFB. * @example 12.34 */ declare const ATTR_TTFB_DNS_DURATION = "ttfb.dns_duration"; /** * Connection duration for TTFB. * @example 23.45 */ declare const ATTR_TTFB_CONNECTION_DURATION = "ttfb.connection_duration"; /** * Request duration for TTFB. * @example 34.56 */ declare const ATTR_TTFB_REQUEST_DURATION = "ttfb.request_duration"; /** * Cache duration for TTFB. * @example 5.67 */ declare const ATTR_TTFB_CACHE_DURATION = "ttfb.cache_duration"; /** * Waiting time for TTFB (deprecated, use waiting_duration). * @example 45.67 * @deprecated Use ATTR_TTFB_WAITING_DURATION instead */ declare const ATTR_TTFB_WAITING_TIME = "ttfb.waiting_time"; /** * DNS time for TTFB (deprecated, use dns_duration). * @example 12.34 * @deprecated Use ATTR_TTFB_DNS_DURATION instead */ declare const ATTR_TTFB_DNS_TIME = "ttfb.dns_time"; /** * Connection time for TTFB (deprecated, use connection_duration). * @example 23.45 * @deprecated Use ATTR_TTFB_CONNECTION_DURATION instead */ declare const ATTR_TTFB_CONNECTION_TIME = "ttfb.connection_time"; /** * Request time for TTFB (deprecated, use request_duration). * @example 34.56 * @deprecated Use ATTR_TTFB_REQUEST_DURATION instead */ declare const ATTR_TTFB_REQUEST_TIME = "ttfb.request_time"; export { ATTR_BROWSER_HEIGHT, ATTR_BROWSER_NAME, ATTR_BROWSER_TOUCH_SCREEN_ENABLED, ATTR_BROWSER_VERSION, ATTR_BROWSER_WIDTH, ATTR_CLS_DELTA, ATTR_CLS_ELEMENT, ATTR_CLS_HAD_RECENT_INPUT, ATTR_CLS_ID, ATTR_CLS_LARGEST_SHIFT_TARGET, ATTR_CLS_LARGEST_SHIFT_TIME, ATTR_CLS_LARGEST_SHIFT_VALUE, ATTR_CLS_LOAD_STATE, ATTR_CLS_NAVIGATION_TYPE, ATTR_CLS_RATING, ATTR_CLS_VALUE, ATTR_DEVICE_TYPE, ATTR_ENTRY_PAGE_HASH, ATTR_ENTRY_PAGE_HOSTNAME, ATTR_ENTRY_PAGE_PATH, ATTR_ENTRY_PAGE_REFERRER, ATTR_ENTRY_PAGE_SEARCH, ATTR_ENTRY_PAGE_URL, ATTR_FCP_DELTA, ATTR_FCP_ID, ATTR_FCP_LOAD_STATE, ATTR_FCP_NAVIGATION_TYPE, ATTR_FCP_RATING, ATTR_FCP_TIME_SINCE_FIRST_BYTE, ATTR_FCP_TIME_TO_FIRST_BYTE, ATTR_FCP_VALUE, ATTR_HONEYCOMB_DISTRO_RUNTIME_VERSION, ATTR_HONEYCOMB_DISTRO_VERSION, ATTR_INP_DELTA, ATTR_INP_DURATION, ATTR_INP_ELEMENT, ATTR_INP_EVENT_TYPE, ATTR_INP_ID, ATTR_INP_INPUT_DELAY, ATTR_INP_INTERACTION_TARGET, ATTR_INP_INTERACTION_TIME, ATTR_INP_INTERACTION_TYPE, ATTR_INP_LOAD_STATE, ATTR_INP_NAVIGATION_TYPE, ATTR_INP_NEXT_PAINT_TIME, ATTR_INP_PRESENTATION_DELAY, ATTR_INP_PROCESSING_DURATION, ATTR_INP_RATING, ATTR_INP_SCRIPT_DURATION, ATTR_INP_SCRIPT_ENTRY_TYPE, ATTR_INP_SCRIPT_EXECUTION_START, ATTR_INP_SCRIPT_FORCED_STYLE_AND_LAYOUT_DURATION, ATTR_INP_SCRIPT_INVOKER, ATTR_INP_SCRIPT_PAUSE_DURATION, ATTR_INP_SCRIPT_SOURCE_CHAR_POSITION, ATTR_INP_SCRIPT_SOURCE_FUNCTION_NAME, ATTR_INP_SCRIPT_SOURCE_URL, ATTR_INP_SCRIPT_START_TIME, ATTR_INP_SCRIPT_WINDOW_ATTRIBUTION, ATTR_INP_TIMING_DURATION, ATTR_INP_TIMING_ENTRY_TYPE, ATTR_INP_TIMING_NAME, ATTR_INP_TIMING_RENDER_START, ATTR_INP_TIMING_START_TIME, ATTR_INP_VALUE, ATTR_LCP_DELTA, ATTR_LCP_ELEMENT, ATTR_LCP_ELEMENT_RENDER_DELAY, ATTR_LCP_ID, ATTR_LCP_NAVIGATION_TYPE, ATTR_LCP_RATING, ATTR_LCP_RESOURCE_LOAD_DELAY, ATTR_LCP_RESOURCE_LOAD_DURATION, ATTR_LCP_RESOURCE_LOAD_TIME, ATTR_LCP_TIME_TO_FIRST_BYTE, ATTR_LCP_URL, ATTR_LCP_VALUE, ATTR_NETWORK_EFFECTIVE_TYPE, ATTR_PAGE_HASH, ATTR_PAGE_HOSTNAME, ATTR_PAGE_ROUTE, ATTR_PAGE_SEARCH, ATTR_PAGE_URL, ATTR_SCREEN_HEIGHT, ATTR_SCREEN_SIZE, ATTR_SCREEN_WIDTH, ATTR_TTFB_CACHE_DURATION, ATTR_TTFB_CONNECTION_DURATION, ATTR_TTFB_CONNECTION_TIME, ATTR_TTFB_DELTA, ATTR_TTFB_DNS_DURATION, ATTR_TTFB_DNS_TIME, ATTR_TTFB_ID, ATTR_TTFB_NAVIGATION_TYPE, ATTR_TTFB_RATING, ATTR_TTFB_REQUEST_DURATION, ATTR_TTFB_REQUEST_TIME, ATTR_TTFB_VALUE, ATTR_TTFB_WAITING_DURATION, ATTR_TTFB_WAITING_TIME, ATTR_URL_PATH, BaggageSpanProcessor, GlobalErrorsInstrumentation, HoneycombWebSDK, WebSDK, WebVitalsInstrumentation, recordException }; export type { EntryPageConfig, HoneycombOptions, WebSDKConfiguration, WebVitalsInstrumentationConfig };