import { Call, StreamVideoParticipant } from '@stream-io/video-client';
import { Filter } from '../../../utilities/filter';
export type FilterableParticipant = Pick<StreamVideoParticipant, 'userId' | 'isSpeaking' | 'isDominantSpeaker' | 'name' | 'roles'> & {
    isPinned: boolean;
    hasVideo: boolean;
    hasAudio: boolean;
    hasScreenShare: boolean;
};
export type ParticipantFilter = Filter<FilterableParticipant>;
export type ParticipantPredicate = (participant: StreamVideoParticipant) => boolean;
export declare const useFilteredParticipants: ({ excludeLocalParticipant, filterParticipants, }: {
    excludeLocalParticipant?: boolean;
    filterParticipants?: ParticipantFilter | ParticipantPredicate;
}) => StreamVideoParticipant[];
export declare const applyParticipantsFilter: (participants: StreamVideoParticipant[], filter: ParticipantPredicate | ParticipantFilter) => StreamVideoParticipant[];
export declare const usePaginatedLayoutSortPreset: (call: Call | undefined) => void;
export declare const useSpeakerLayoutSortPreset: (call: Call | undefined, isOneOnOneCall: boolean) => void;
export declare const useRawRemoteParticipants: () => StreamVideoParticipant[];
