polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
36 lines • 1.29 kB
TypeScript
import { EventEmitter } from 'events';
import { BaseComponent } from './base.component';
import { ComponentConfig, ComponentState } from '../types/monitoring';
export interface ComponentFactory {
type: string;
create(config: ComponentConfig, eventBus: EventEmitter): BaseComponent;
}
export declare class ComponentRegistry {
private factories;
private components;
private eventBus;
constructor(eventBus: EventEmitter);
private setupEventListeners;
registerFactory(factory: ComponentFactory): void;
unregisterFactory(type: string): void;
getRegisteredTypes(): string[];
hasFactory(type: string): boolean;
createComponent(config: ComponentConfig): BaseComponent;
getComponent(componentId: string): BaseComponent | undefined;
getAllComponents(): BaseComponent[];
getComponentsByType(type: string): BaseComponent[];
getComponentStates(): ComponentState[];
removeComponent(componentId: string): boolean;
removeAllComponents(): void;
getComponentCount(): number;
getHealthStatus(): {
total: number;
running: number;
error: number;
initializing: number;
paused: number;
destroyed: number;
};
destroy(): void;
}
//# sourceMappingURL=component-registry.d.ts.map