UNPKG

@wdio/browserstack-service

Version:
47 lines 1.82 kB
/** * Module Hook Tracker - Tracks lifecycle events for SDK modules * Provides performance instrumentation for module initialization and cleanup */ /** * Module lifecycle hooks interface */ export interface ModuleLifecycleHooks { onStart?: () => Promise<void> | void; onStop?: () => Promise<void> | void; onDriverInit?: () => Promise<void> | void; initSession?: () => Promise<void> | void; beforeSession?: () => Promise<void> | void; } /** * Module types that are tracked */ export type TrackedModule = 'instrumentation' | 'testhub' | 'observability' | 'percy' | 'accessibility' | 'ai' | 'local' | 'appautomate'; /** * Tracks module hook execution with performance measurement */ export declare class ModuleHookTracker { private static instance; private constructor(); static getInstance(): ModuleHookTracker; /** * Get event name for a module hook */ private getEventName; /** * Track a module hook execution with performance measurement */ trackHook<T>(module: TrackedModule, hook: keyof ModuleLifecycleHooks, fn: () => Promise<T> | T): Promise<T>; /** * Convenience methods for tracking specific hooks */ trackOnStart<T = void>(module: TrackedModule, fn: () => Promise<T> | T): Promise<T>; trackOnStop<T = void>(module: TrackedModule, fn: () => Promise<T> | T): Promise<T>; trackOnDriverInit<T = void>(module: TrackedModule, fn: () => Promise<T> | T): Promise<T>; trackInitSession<T = void>(module: TrackedModule, fn: () => Promise<T> | T): Promise<T>; trackBeforeSession<T = void>(module: TrackedModule, fn: () => Promise<T> | T): Promise<T>; } /** * Global instance export for convenience */ export declare const moduleHookTracker: ModuleHookTracker; //# sourceMappingURL=module-hook-tracker.d.ts.map