/// import { HMSTrackSource, HMSPeer } from '@100mslive/hms-video-store'; import { TrackWithPeer } from './videoListUtils'; /** * Check only for presence(not truthy) of a value. * Use in places where 0, false need to be considered valid. */ export declare function isPresent(value: any): boolean; export declare const formatBytes: (bytes?: number | undefined, unit?: string, decimals?: number) => string; export declare const getVideoTileLabel: (peerName: string, isLocal: boolean, videoSource?: HMSTrackSource, isLocallyMuted?: boolean | undefined, degraded?: boolean | undefined) => string; export declare const closeMediaStream: (stream: MediaStream | undefined) => void; export declare const chunk: (elements: T[], chunkSize: number, onlyOnePage: boolean) => T[][]; interface GetTileSizesInList { count: number; parentWidth: number; parentHeight: number; maxTileCount?: number; maxRowCount?: number; maxColCount?: number; aspectRatio: { width: number; height: number; }; } /** * get the aspect ration occurring with the highest frequency * @param tracks - video tracks to infer aspect ratios from */ export declare const getModeAspectRatio: (tracks: TrackWithPeer[]) => number | null; interface GetTileSizes { parentWidth: number; parentHeight: number; count: number; maxCount: number; aspectRatio: { width: number; height: number; }; } export declare const getTileSizesWithPageConstraint: ({ parentWidth, parentHeight, count, maxCount, aspectRatio, }: GetTileSizes) => { tilesInFirstPage: number; defaultWidth: number; defaultHeight: number; lastPageWidth: number; lastPageHeight: number; isLastPageDifferentFromFirstPage: boolean; }; export declare const getTileSizesWithRowConstraint: ({ parentWidth, parentHeight, count, maxCount, aspectRatio, }: GetTileSizes) => { tilesInFirstPage: number; defaultWidth: number; defaultHeight: number; lastPageWidth: number; lastPageHeight: number; isLastPageDifferentFromFirstPage: boolean; }; export declare const getTileSizesWithColConstraint: ({ parentWidth, parentHeight, count, maxCount, aspectRatio, }: GetTileSizes) => { tilesInFirstPage: number; defaultWidth: number; defaultHeight: number; lastPageWidth: number; lastPageHeight: number; isLastPageDifferentFromFirstPage: boolean; }; export declare function calculateLayoutSizes({ count, parentWidth, parentHeight, maxTileCount, maxRowCount, maxColCount, aspectRatio, }: GetTileSizesInList): { tilesInFirstPage: number; defaultWidth: number; defaultHeight: number; lastPageWidth: number; lastPageHeight: number; isLastPageDifferentFromFirstPage: boolean; }; interface ChunkElements { elements: T[]; tilesInFirstPage: number; onlyOnePage: boolean; isLastPageDifferentFromFirstPage: boolean; defaultWidth: number; defaultHeight: number; lastPageWidth: number; lastPageHeight: number; } /** * Given a list of tracks/elements and some constraints, group the tracks in separate pages. * @return 2D list for every page which has the original element and height and width * for its tile. */ export declare const chunkElements: ({ elements, tilesInFirstPage, onlyOnePage, isLastPageDifferentFromFirstPage, defaultWidth, defaultHeight, lastPageWidth, lastPageHeight, }: ChunkElements) => (T & { width: number; height: number; })[][]; /** * Mathematical mode - the element with the highest occurrence in an array * @param array */ export declare function mode(array: number[]): number | null; export declare const getInitialsFromName: (name: string | undefined) => string | undefined; /** * Finds the largest rectangle area when trying to place N rectangle into a containing * rectangle without rotation. * * @param {Number} containerWidth The width of the container. * @param {Number} containerHeight The height of the container. * @param {Number} numRects How many rectangles must fit within. * @param {Number} width The unscaled width of the rectangles to be placed. * @param {Number} height The unscaled height of the rectangles to be placed. * @return {Object} The area and number of rows and columns that fit. */ export declare const largestRect: (containerWidth: number, containerHeight: number, numRects: number, width: number | undefined, height: number | undefined) => { area: number; cols: number; rows: number; width: number; height: number; }; interface GenerateClassNameProps { seed: string; componentName: string; } export declare const generateClassName: ({ seed, componentName, }: GenerateClassNameProps) => string; interface AddGlobalCssProps { seedStyleMap: Type; componentName: string; } export declare function addGlobalCss({ seedStyleMap, componentName, }: AddGlobalCssProps): {}; export declare function combineClasses(defaultClasses: Record | undefined, extraClasses: Record | undefined): Record | undefined; export declare const generateRandomString: () => string; export declare const mergeRefs: (...refs: (import("react").MutableRefObject | ((node?: Element | null | undefined) => void))[]) => import("react").MutableRefObject | ((inst: Element | null) => void) | null; export declare const scrollTo: (element: React.MutableRefObject) => () => void; export declare const sigmoid: (z: number) => number; export declare function isMobileDevice(): any; export declare const isSafari: () => boolean; export declare const toggleFullScreen: (element: HTMLDivElement, setFullScreen: boolean) => Promise; export declare const groupBy: (peers: HMSPeer[]) => [string, HMSPeer[]][]; export {};