import { Comparator } from './';
import { StreamVideoParticipant } from '../types';
import { ParticipantSource } from '../gen/video/sfu/models/models';
/**
 * A comparator which sorts participants by the fact that they are the dominant speaker or not.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const dominantSpeaker: Comparator<StreamVideoParticipant>;
/**
 * A comparator which sorts participants by the fact that they are speaking or not.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const speaking: Comparator<StreamVideoParticipant>;
/**
 * A comparator which sorts participants by screen sharing status.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const screenSharing: Comparator<StreamVideoParticipant>;
/**
 * A comparator which sorts participants by video status.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const publishingVideo: Comparator<StreamVideoParticipant>;
/**
 * A comparator which sorts participants by audio status.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const publishingAudio: Comparator<StreamVideoParticipant>;
/**
 * A comparator which prioritizes participants who are pinned.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const pinned: Comparator<StreamVideoParticipant>;
/**
 * A comparator creator which will set up a comparator which prioritizes
 * participants who are from a specific source (e.g., WebRTC, RTMP, WHIP...).
 *
 * The priority of a source is determined by the order of the sources passed in.
 * e.g. [SRT, RTMP, WHIP] will prioritize SRT sources first, then RTMP, then WHIP.
 *
 * @param sources the sources to prioritize.
 */
export declare const withParticipantSource: (...sources: ParticipantSource[]) => Comparator<StreamVideoParticipant>;
/**
 * A comparator creator which will set up a comparator which prioritizes
 * participants who have a specific reaction.
 *
 * @param type the reaction type.
 */
export declare const reactionType: (type: string) => Comparator<StreamVideoParticipant>;
/**
 * A comparator creator which will set up a comparator which prioritizes
 * participants who have a specific role.
 *
 * @param roles the roles to prioritize.
 */
export declare const role: (...roles: string[]) => Comparator<StreamVideoParticipant>;
/**
 * A comparator which sorts participants by name.
 *
 * @param a the first participant.
 * @param b the second participant.
 */
export declare const name: Comparator<StreamVideoParticipant>;
