/** * * Copyright 2020-2026 Splunk Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ import { InstrumentationBase, InstrumentationConfig } from '@opentelemetry/instrumentation'; import { SessionManager } from '../managers'; import { SplunkOtelWebConfig } from '../types'; interface SocketIOSocket { (...args: unknown[]): unknown; nsp: string; prototype: { addEventListener(ev: string, listener: (...args: unknown[]) => void): ThisParameterType; emit(ev: string, ...args: unknown[]): ThisParameterType; off(ev?: string, listener?: (...args: unknown[]) => void): ThisParameterType; on(ev: string, listener: (...args: unknown[]) => void): ThisParameterType; removeAllListeners(ev?: string): ThisParameterType; removeEventListener(ev?: string, listener?: (...args: unknown[]) => void): ThisParameterType; removeListener(ev?: string, listener?: (...args: unknown[]) => void): ThisParameterType; }; } interface SocketIOClient { (...args: unknown[]): unknown; Manager: () => void; Socket: SocketIOSocket; } export interface SocketIoClientInstrumentationConfig extends InstrumentationConfig { /** * Target object or the key it will be set on window. * * Not explicitly typed to avoid dependency on socket-io client */ target?: string | SocketIOClient; } export declare class SplunkSocketIoClientInstrumentation extends InstrumentationBase { protected otelConfig: SplunkOtelWebConfig; sessionManager?: SessionManager | undefined; _onDisable?: () => void; protected listeners: WeakMap<(...args: unknown[]) => void, (...args: unknown[]) => void>; constructor(config: SocketIoClientInstrumentationConfig | undefined, otelConfig: SplunkOtelWebConfig, sessionManager?: SessionManager | undefined); disable(): void; enable(): void; getConfig(): SocketIoClientInstrumentationConfig; protected init(): void; protected patchSocketIo(io: SocketIOClient): void; } export {};