/// import { HMSTrackSource } from '../store/schema'; import { TrackWithPeer } from './videoListUtils'; declare const getVideoTileLabel: (peerName: string, isLocal: boolean, videoSource?: HMSTrackSource) => string | undefined; declare const closeMediaStream: (stream: MediaStream | undefined) => void; 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 */ declare const getModeAspectRatio: (tracks: TrackWithPeer[]) => number | null; 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. */ 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 */ declare function mode(array: number[]): number | null; 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. */ 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; } declare const generateClassName: ({ seed, componentName }: GenerateClassNameProps) => string; interface AddGlobalCssProps { seedStyleMap: Type; componentName: string; } declare function addGlobalCss({ seedStyleMap, componentName, }: AddGlobalCssProps): {}; declare function combineClasses(defaultClasses: Record | undefined, extraClasses: Record | undefined): Record | undefined; declare const generateRandomString: () => string; declare const mergeRefs: (...refs: (import("react").MutableRefObject | ((node?: Element | null | undefined) => void))[]) => import("react").MutableRefObject | ((inst: Element | null) => void) | null; declare const scrollTo: (element: React.MutableRefObject) => () => void; declare const sigmoid: (z: number) => number; export { closeMediaStream, getVideoTileLabel, getInitialsFromName, largestRect, generateClassName, addGlobalCss, combineClasses, chunkElements, mode, generateRandomString, mergeRefs, scrollTo, getModeAspectRatio, calculateLayoutSizes, sigmoid, };