import { ComponentType, ReactElement } from 'react';
import { StreamVideoParticipant, VideoTrackType } from '@stream-io/video-client';
import { VideoProps } from '../Video';
export type ParticipantViewProps = {
    /**
     * The participant whose video/audio stream we want to play.
     */
    participant: StreamVideoParticipant;
    /**
     * Override the default UI for rendering participant information/actions.
     * pass `null` if you wish to not render anything
     * @default DefaultParticipantViewUI
     */
    ParticipantViewUI?: ComponentType | ReactElement | null;
    /**
     * The kind of video stream to play for the given participant.
     * The default value is `videoTrack`.
     * You can use `none` if you're building an audio-only call.
     */
    trackType?: VideoTrackType | 'none';
    /**
     * Forces participant's video to be mirrored or unmirrored. By default, video track
     * from the local participant is mirrored, and all other videos are not mirrored.
     */
    mirror?: boolean;
    /**
     * This prop is only useful for advanced use-cases (for example, building your own layout).
     * When set to `true` it will mute the give participant's audio stream on the client side.
     * The local participant is always muted.
     */
    muteAudio?: boolean;
    /**
     * An object with set functions meant for exposing the video
     * and video placeholder elements to the integrators.
     * It's useful when you want to attach custom event handlers to these elements.
     * - `refs.setVideoElement`
     * - `refs.setVideoPlaceholderElement`
     */
    refs?: VideoProps['refs'];
    /**
     * Custom class applied to the root DOM element.
     */
    className?: string;
} & Pick<VideoProps, 'VideoPlaceholder' | 'PictureInPicturePlaceholder'>;
export declare const ParticipantView: import("react").ForwardRefExoticComponent<{
    /**
     * The participant whose video/audio stream we want to play.
     */
    participant: StreamVideoParticipant;
    /**
     * Override the default UI for rendering participant information/actions.
     * pass `null` if you wish to not render anything
     * @default DefaultParticipantViewUI
     */
    ParticipantViewUI?: ComponentType | ReactElement | null;
    /**
     * The kind of video stream to play for the given participant.
     * The default value is `videoTrack`.
     * You can use `none` if you're building an audio-only call.
     */
    trackType?: VideoTrackType | "none";
    /**
     * Forces participant's video to be mirrored or unmirrored. By default, video track
     * from the local participant is mirrored, and all other videos are not mirrored.
     */
    mirror?: boolean;
    /**
     * This prop is only useful for advanced use-cases (for example, building your own layout).
     * When set to `true` it will mute the give participant's audio stream on the client side.
     * The local participant is always muted.
     */
    muteAudio?: boolean;
    /**
     * An object with set functions meant for exposing the video
     * and video placeholder elements to the integrators.
     * It's useful when you want to attach custom event handlers to these elements.
     * - `refs.setVideoElement`
     * - `refs.setVideoPlaceholderElement`
     */
    refs?: VideoProps["refs"];
    /**
     * Custom class applied to the root DOM element.
     */
    className?: string;
} & Pick<VideoProps, "VideoPlaceholder" | "PictureInPicturePlaceholder"> & import("react").RefAttributes<HTMLDivElement>>;
