murmuraba
Version:
Real-time audio noise reduction with advanced chunked processing for web applications
67 lines • 2.05 kB
TypeScript
/**
* Secure Event Bridge for internal communication
* Replaces the insecure global __murmurabaTDDBridge
*/
import { EventEmitter } from './event-emitter';
import { ProcessingMetrics } from '../types';
import { ChunkProcessor } from '../managers/chunk-processor';
interface BridgeEvents extends Record<string, (...args: any[]) => void> {
'metrics': (metrics: ProcessingMetrics) => void;
'chunk-processed': (chunkId: string) => void;
'recording-manager-registered': (id: string) => void;
'recording-manager-unregistered': (id: string) => void;
}
declare class SecureEventBridge extends EventEmitter<BridgeEvents> {
private static instance;
private chunkProcessor;
private recordingManagers;
private readonly accessToken;
private constructor();
/**
* Get the singleton instance
*/
static getInstance(): SecureEventBridge;
/**
* Reset the singleton (mainly for testing)
*/
static reset(): void;
/**
* Register a chunk processor with validation
*/
registerChunkProcessor(processor: ChunkProcessor, token: string): void;
/**
* Register a recording manager with validation
*/
registerRecordingManager(id: string, manager: any, token: string): void;
/**
* Unregister a recording manager
*/
unregisterRecordingManager(id: string, token: string): void;
/**
* Notify metrics to all registered managers
*/
notifyMetrics(metrics: ProcessingMetrics, token: string): void;
/**
* Get the access token (only for internal use)
*/
getAccessToken(): string;
/**
* Get registered recording managers count
*/
getRecordingManagersCount(): number;
/**
* Generate a secure access token
*/
private generateAccessToken;
/**
* Validate access token
*/
private validateToken;
/**
* Validate metrics object
*/
private validateMetrics;
}
export { SecureEventBridge };
export type { BridgeEvents };
//# sourceMappingURL=secure-event-bridge.d.ts.map