/** * ServiceWorker Mock System Type Definitions */ interface SwMockConfig { enabled: boolean; debug: boolean; defaultDelay: number; interceptPatterns: string[]; excludePatterns: string[]; endpoints: Record; globalDelay: number | null; errorRate: number; networkFailure: NetworkFailureConfig; mockDataPath: string; includeInterceptPrefix: boolean; } interface NetworkFailureConfig { enabled: boolean; scenarios: { httpErrors: HttpErrorScenario; timeout: TimeoutScenario; connectionFailure: ConnectionFailureScenario; responseDelay: ResponseDelayScenario; intermittentFailure: IntermittentFailureScenario; }; } interface HttpErrorScenario { enabled: boolean; statusCodes: number[]; rate: number; distribution: 'random' | 'sequential' | 'weighted'; } interface TimeoutScenario { enabled: boolean; duration: number; rate: number; } interface ConnectionFailureScenario { enabled: boolean; rate: number; } interface ResponseDelayScenario { enabled: boolean; minDelay: number; maxDelay: number; rate: number; } interface IntermittentFailureScenario { enabled: boolean; failureDuration: number; recoveryDuration: number; rate: number; } interface MockEndpointConfig { delay?: number; status?: number; errorRate?: number; errorStatus?: number; data?: any; headers?: Record; } interface SwMockInitOptions extends Partial { workerUrl?: string; mockDataPath?: string; autoRegister?: boolean; scope?: string; } interface SwMockStatus { enabled: boolean; debug: boolean; defaultDelay: number; globalDelay: number | null; interceptPatterns: string[]; excludePatterns: string[]; endpointsCount: number; serviceWorkerReady: boolean; mockDataPath: string; scope: string; networkFailure: { enabled: boolean; httpErrors: boolean; timeout: boolean; connectionFailure: boolean; responseDelay: boolean; intermittentFailure: boolean; }; } interface CapturedRequest { method: string; url: string; timestamp: string; headers: Record; body?: any; } interface MockResponse { status: number; statusText: string; headers: Record; data: any; } interface NetworkFailureInfo { type: 'httpError' | 'timeout' | 'connectionFailure' | 'responseDelay'; statusCode?: number; duration?: number; delay?: number; } interface SwMockPlugin { name: string; install: (swMock: SwMockInstance) => void; } interface SwMockInstance { init(options?: SwMockInitOptions): Promise; enable(): Promise; disable(): Promise; toggle(): Promise; getStatus(): Promise; getConfig(): Promise; updateConfig(config: Partial): Promise; resetConfig(): Promise; enableNetworkFailure(): Promise; disableNetworkFailure(): Promise; configureNetworkFailure(config: Partial): Promise; resetNetworkFailureState(): Promise; enableHttpErrors(options?: Partial): Promise; enableTimeouts(options?: Partial): Promise; enableConnectionFailures(options?: Partial): Promise; enableResponseDelays(options?: Partial): Promise; enableIntermittentFailures(options?: Partial): Promise; enableDevelopmentMode(): Promise; enableTestingMode(): Promise; enableStressTestMode(): Promise; enableDebug(): Promise; disableDebug(): Promise; startCapture(): Promise; stopCapture(): Promise; exportCapturedRequests(): void; addMockEndpoint(endpoint: string, config: MockEndpointConfig): Promise; removeMockEndpoint(endpoint: string): Promise; setGlobalDelay(delay: number): Promise; addInterceptPattern(pattern: string): Promise; removeInterceptPattern(pattern: string): Promise; addExcludePattern(pattern: string): Promise; removeExcludePattern(pattern: string): Promise; clearDatabase(): Promise; use(plugin: SwMockPlugin): void; on(event: string, callback: Function): void; off(event: string, callback: Function): void; emit(event: string, ...args: any[]): void; } type SwMockEventType = 'init' | 'enable' | 'disable' | 'config-update' | 'network-failure-trigger' | 'request-intercepted' | 'mock-response-sent' | 'error'; interface SwMockEvent { type: SwMockEventType; timestamp: number; data?: any; } declare global { interface Window { SwMock?: SwMockInstance; swMock?: SwMockInstance; swMockUtils?: SwMockInstance; } } /** * Event Emitter for SwMock */ declare class EventEmitter { private events; /** * Add event listener */ on(event: string, callback: Function): void; /** * Remove event listener */ off(event: string, callback: Function): void; /** * Add one-time event listener */ once(event: string, callback: Function): void; /** * Emit event */ emit(event: string, ...args: any[]): void; /** * Remove all listeners for an event */ removeAllListeners(event?: string): void; /** * Get all event names */ eventNames(): string[]; /** * Get listener count for an event */ listenerCount(event: string): number; } /** * Main SwMock Class */ declare class SwMock extends EventEmitter implements SwMockInstance { private communication; private plugins; private isInitialized; constructor(); /** * Initialize SwMock system */ init(options?: SwMockInitOptions): Promise; /** * Enable mock functionality */ enable(): Promise; /** * Disable mock functionality */ disable(): Promise; /** * Toggle mock functionality */ toggle(): Promise; /** * Get current status */ getStatus(): Promise; /** * Get current configuration */ getConfig(): Promise; /** * Update configuration */ updateConfig(config: Partial): Promise; /** * Reset configuration */ resetConfig(): Promise; enableNetworkFailure(): Promise; disableNetworkFailure(): Promise; configureNetworkFailure(config: Partial): Promise; resetNetworkFailureState(): Promise; enableHttpErrors(options?: Partial): Promise; enableTimeouts(options?: Partial): Promise; enableConnectionFailures(options?: Partial): Promise; enableResponseDelays(options?: Partial): Promise; enableIntermittentFailures(options?: Partial): Promise; enableDevelopmentMode(): Promise; enableTestingMode(): Promise; enableStressTestMode(): Promise; enableDebug(): Promise; disableDebug(): Promise; startCapture(): Promise; stopCapture(): Promise; exportCapturedRequests(): void; addMockEndpoint(endpoint: string, config: MockEndpointConfig): Promise; removeMockEndpoint(endpoint: string): Promise; setGlobalDelay(delay: number): Promise; addInterceptPattern(pattern: string): Promise; removeInterceptPattern(pattern: string): Promise; addExcludePattern(pattern: string): Promise; removeExcludePattern(pattern: string): Promise; clearDatabase(): Promise; use(plugin: SwMockPlugin): void; } /** * Utility Helper Functions */ /** * Check if ServiceWorker is supported */ declare function isServiceWorkerSupported(): boolean; /** * Check if running in secure context (HTTPS or localhost) */ declare function isSecureContext(): boolean; /** * Export captured requests as JSON file */ declare function exportCapturedRequests(requests: CapturedRequest[]): void; /** * ServiceWorker Mock Configuration Management */ declare const DEFAULT_CONFIG: SwMockConfig; declare const PRESET_CONFIGS: { development: Partial; testing: Partial; stress: Partial; }; /** * Create a new SwMock instance */ declare function createSwMock(): SwMock; /** * Get or create global SwMock instance */ declare function getSwMock(): SwMock; /** * Initialize SwMock with options (convenience function) */ declare function init(options?: SwMockInitOptions): Promise; /** * Quick setup functions */ declare const SwMockUtils: { /** * Quick setup for development environment */ setupDevelopment(options?: SwMockInitOptions): Promise; /** * Quick setup for testing environment */ setupTesting(options?: SwMockInitOptions): Promise; /** * Quick setup for stress testing */ setupStressTesting(options?: SwMockInitOptions): Promise; /** * Disable all mock functionality */ disable(): Promise; /** * Check system compatibility */ checkCompatibility(): { compatible: boolean; issues: string[]; }; /** * Get system information */ getSystemInfo(): { serviceWorkerSupported: boolean; secureContext: boolean; indexedDBSupported: boolean; userAgent: string; url: string; timestamp: string; }; }; /** * Plugin system */ declare const plugins: { /** * Console logger plugin */ consoleLogger: { name: string; install(swMock: SwMock): void; }; /** * Performance monitor plugin */ performanceMonitor: { name: string; install(swMock: SwMock): void; }; }; export { CapturedRequest, ConnectionFailureScenario, DEFAULT_CONFIG, HttpErrorScenario, IntermittentFailureScenario, MockEndpointConfig, MockResponse, NetworkFailureConfig, NetworkFailureInfo, PRESET_CONFIGS, ResponseDelayScenario, SwMock, SwMockConfig, SwMockEvent, SwMockEventType, SwMockInitOptions, SwMockInstance, SwMockPlugin, SwMockStatus, SwMockUtils, TimeoutScenario, createSwMock, SwMock as default, exportCapturedRequests, getSwMock, init, isSecureContext, isServiceWorkerSupported, plugins };