import { ParticipantViewProps } from '../ParticipantView';
import { ParticipantFilter, ParticipantPredicate } from './hooks';
export type SpeakerLayoutProps = {
    /**
     * The UI to be used for the participant in the spotlight.
     */
    ParticipantViewUISpotlight?: ParticipantViewProps['ParticipantViewUI'];
    /**
     * The UI to be used for the participants in the participants bar.
     */
    ParticipantViewUIBar?: ParticipantViewProps['ParticipantViewUI'];
    /**
     * The position of the participants who are not in focus.
     * Providing `null` will hide the bar.
     */
    participantsBarPosition?: 'top' | 'bottom' | 'left' | 'right' | null;
    /**
     * Hard limits the number of the participants rendered in the participants bar.
     * Providing string `dynamic` will calculate hard limit based on screen width/height.
     */
    participantsBarLimit?: 'dynamic' | number;
    /**
     * When set to `true` will exclude the local participant from layout.
     * @default false
     */
    excludeLocalParticipant?: boolean;
    /**
     * Predicate to filter call participants or a filter object.
     * @example
     * // With a predicate:
     * <SpeakerLayout
     *   filterParticipants={p => p.roles.includes('student')}
     * />
     * @example
     * // With a filter object:
     * <SpeakerLayout
     *   filterParticipants={{
     *     $or: [
     *       { roles: { $contains: 'student' } },
     *       { isPinned: true },
     *     ],
     *   }}
     * />
     */
    filterParticipants?: ParticipantPredicate | ParticipantFilter;
    /**
     * When set to `false` disables mirroring of the local participant's video.
     * @default true
     */
    mirrorLocalParticipantVideo?: boolean;
    /**
     * Turns on/off the pagination arrows.
     * @default true
     */
    pageArrowsVisible?: boolean;
    /**
     * Whether the layout is muted. Defaults to `false`.
     */
    muted?: boolean;
    /**
     * Whether to enable drag-to-scroll functionality on the participants bar.
     * @default false
     */
    enableDragToScroll?: boolean;
} & Pick<ParticipantViewProps, 'VideoPlaceholder' | 'PictureInPicturePlaceholder'>;
export declare const SpeakerLayout: {
    ({ ParticipantViewUIBar, ParticipantViewUISpotlight, VideoPlaceholder, PictureInPicturePlaceholder, participantsBarPosition, participantsBarLimit, mirrorLocalParticipantVideo, excludeLocalParticipant, filterParticipants, pageArrowsVisible, muted, enableDragToScroll, }: SpeakerLayoutProps): import("react/jsx-runtime").JSX.Element | null;
    displayName: string;
};
