@wdio/browserstack-service
Version:
WebdriverIO service for better Browserstack integration
47 lines • 1.82 kB
TypeScript
/**
* 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