/// <reference types="react" />
import { VideoGalleryParticipant, VideoGalleryRemoteParticipant } from '../../../types';
import { ReactionResources } from '../../..';
import { VideoGalleryLayout } from '../../VideoGallery';
/**
 * Arguments used to determine a {@link OrganizedParticipantsResult}
 * @private
 */
export interface OrganizedParticipantsArgs {
    remoteParticipants: VideoGalleryRemoteParticipant[];
    localParticipant?: VideoGalleryParticipant;
    dominantSpeakers?: string[];
    maxGridParticipants?: number;
    maxOverflowGalleryDominantSpeakers?: number;
    isScreenShareActive?: boolean;
    pinnedParticipantUserIds?: string[];
    layout?: VideoGalleryLayout;
    spotlightedParticipantUserIds?: string[];
    previousGridParticipants?: VideoGalleryRemoteParticipant[];
    previousOverflowParticipants?: VideoGalleryRemoteParticipant[];
}
/**
 * A result that defines grid participants and overflow gallery participants in the VideoGallery
 * @private
 */
export interface OrganizedParticipantsResult {
    gridParticipants: VideoGalleryParticipant[];
    overflowGalleryParticipants: VideoGalleryParticipant[];
}
/**
 * @private
 */
export declare const MAX_GRID_PARTICIPANTS_NOT_LARGE_GALLERY = 9;
/**
 * Hook to determine which participants should be in grid and overflow gallery and their order respectively
 * @private
 */
export declare const useOrganizedParticipants: (props: OrganizedParticipantsArgs) => OrganizedParticipantsResult;
/**
 * @private
 */
export declare const renderTiles: (gridParticipants: VideoGalleryParticipant[], onRenderRemoteParticipant: (participant: VideoGalleryRemoteParticipant, isVideoParticipant?: boolean) => JSX.Element, maxRemoteVideoStreams: number, indexesToRender: number[], overflowGalleryParticipants: VideoGalleryParticipant[], dominantSpeakers?: string[]) => {
    gridTiles: JSX.Element[];
    overflowGalleryTiles: JSX.Element[];
};
/**
 * @private
 */
export declare const getEmojiResource: (reactionName: string, reactionResources: ReactionResources) => string | undefined;
/**
 * @private
 */
export declare const getEmojiFrameCount: (reactionName: string, reactionResources: ReactionResources) => number;
//# sourceMappingURL=videoGalleryLayoutUtils.d.ts.map