import { OnChanges, OnInit, SimpleChanges, Injector } from '@angular/core'; import { CustomMediaComponent } from '../../../@types/types'; import * as i0 from "@angular/core"; export interface FlexibleVideoOptions { customWidth: number; customHeight: number; rows: number; columns: number; componentsToRender: CustomMediaComponent[]; showAspect?: boolean; backgroundColor?: string; Screenboard?: CustomMediaComponent; annotateScreenStream?: boolean; localStreamScreen: MediaStream | null; isDarkMode?: boolean; enableGlassmorphism?: boolean; cellBorderRadius?: number; enableGlow?: boolean; } export type FlexibleVideoType = (options: FlexibleVideoOptions) => HTMLElement; /** * FlexibleVideo component displays a customizable video grid, supporting dynamic layout and optional screenboard overlay. * * @selector app-flexible-video * @standalone true * @imports CommonModule * * @inputs * - `customWidth` (number): The custom width for each video grid item in pixels. Default is 0. * - `customHeight` (number): The custom height for each video grid item in pixels. Default is 0. * - `rows` (number): Number of rows in the video grid. Default is 0. * - `columns` (number): Number of columns in the video grid. Default is 0. * - `componentsToRender` (CustomMediaComponent[]): Array of components to render in the grid. * - `showAspect` (boolean): Flag to control aspect ratio display. Default is false. * - `backgroundColor` (string): Background color for the video grid. Default is 'transparent'. * - `Screenboard` (CustomMediaComponent): Optional screenboard component to overlay on the grid. * - `annotateScreenStream` (boolean): Flag to annotate the screen stream. Default is false. * - `localStreamScreen` (MediaStream): Local screen stream for video. * * @methods * - `ngOnInit()`: Initializes and generates the grid on component load if `showAspect` is true. * - `ngOnChanges(changes: SimpleChanges)`: Updates grid layout and dimensions if properties change. * - `generateGrid()`: Generates grid structure based on rows, columns, and `componentsToRender`. * - `createInjector(inputs: any)`: Creates and caches an injector for component inputs. * * @example * ```html * * ``` **/ export declare class FlexibleVideo implements OnInit, OnChanges { private injector; customWidth: number; customHeight: number; rows: number; columns: number; componentsToRender: CustomMediaComponent[]; showAspect: boolean; backgroundColor?: string; Screenboard?: CustomMediaComponent; annotateScreenStream?: boolean; localStreamScreen?: MediaStream; isDarkMode: boolean; enableGlassmorphism: boolean; cellBorderRadius: number; enableGlow: boolean; key: number; cardWidth: number; cardHeight: number; cardTop: number; cardLeft: number; canvasLeft: number; grid: any[][]; private injectorCache; constructor(injector: Injector); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; updateDimensions(): void; generateGrid(): void; getContainerStyle(): { maxWidth: string; left: string; }; getCellStyle(component?: CustomMediaComponent): { flex: number; width: string; height: string; background: string; margin: string; padding: string; borderRadius: string; left: string; overflow: string; border: string; backdropFilter: string; boxShadow: string; display: string; alignItems: string; justifyContent: string; position: string; }; getScreenboardStyle(): { left: string; width: string; height: string; backgroundColor: string; borderRadius: string; boxShadow: string; border: string; }; createInjector(inputs: any): Injector; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }