polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
52 lines • 1.73 kB
TypeScript
import * as contrib from 'blessed-contrib';
import { EventEmitter } from 'events';
import { BaseComponent } from './base.component';
import { GridPosition, GridSize, LayoutConfig } from '../types/monitoring';
export interface GridCell {
component?: BaseComponent;
position: GridPosition;
widget?: any;
occupied: boolean;
}
export declare class GridManager {
private screen;
private grid;
private eventBus;
private cells;
private rows;
private cols;
private currentLayout;
private layouts;
private resizeTimeout?;
constructor(screen: any, eventBus: EventEmitter, rows?: number, cols?: number);
private initializeGrid;
private initializeCells;
private setupEventListeners;
private handleResize;
private handleComponentCreated;
private handleComponentDestroyed;
private registerDefaultLayouts;
setLayout(layoutName: string): void;
addComponent(component: BaseComponent, position: GridPosition): any;
removeComponent(componentId: string): boolean;
canPlaceComponent(position: GridPosition): boolean;
getOptimalPosition(size: GridSize): GridPosition | null;
getAvailableLayouts(): string[];
getCurrentLayout(): string;
getLayoutConfig(layoutName: string): LayoutConfig | undefined;
registerLayout(layout: LayoutConfig): void;
getGrid(): contrib.Grid;
getGridSize(): {
rows: number;
cols: number;
};
getOccupiedCells(): GridPosition[];
private findComponentById;
private markCellsOccupied;
private markCellsUnoccupied;
private removeComponentFromGrid;
private clearGrid;
private recalculateLayout;
destroy(): void;
}
//# sourceMappingURL=grid-manager.d.ts.map