import type { ReactNode } from 'react';
import type { SxProps, Theme } from '@mui/material';
import type { VideoQualityOption } from '../VideoPlayer/types';
export type VideoPlayerWebRTCProps = {
    /**
     * Live WebRTC stream (MediaStream). If provided, takes precedence over src.
     */
    stream?: MediaStream | null;
    /**
     * Playback source URL (MP4/HLS if browser supports).
     */
    src?: string;
    autoPlay?: boolean;
    muted?: boolean;
    playsInline?: boolean;
    className?: string;
    availableQualities?: VideoQualityOption[];
    initialQuality?: string;
    onQualityChange?: (quality: VideoQualityOption | null) => void;
    poster?: string;
    sx?: SxProps<Theme>;
    /**
     * Threshold in seconds to consider "live". Also used as liveEdgeThresholdSeconds.
     */
    liveThresholdSeconds?: number;
    allowPlaybackRateForStream?: boolean;
    playbackRates?: number[];
    showPlaybackRate?: boolean;
    zoomLevels?: number[];
    width?: string | number;
    height?: string | number;
    aspectRatio?: string;
    showTimestamp?: boolean;
    showTimeline?: boolean;
    isRecording?: boolean;
    recordingLabel?: string;
    onGoLive?: () => void;
    borderRadius?: number | string;
    loading?: boolean;
    unavailable?: boolean;
    unavailableIcon?: ReactNode;
    unavailableMessage?: ReactNode;
    showWatermark?: boolean;
    /**
     * For live streams, update currentTimeAtom using a wall-clock timer.
     * Set to false if your app will update currentTimeAtom externally.
     */
    updateTimeForLiveStream?: boolean;
    /**
     * When a `selectedRangeAtom` exists (playback mode), enforce playback inside the range.
     * - If the user hits play outside the range, the player jumps to `range.start`.
     * - If playback reaches `range.end`, the player pauses (or loops if `loopSelection=true`).
     */
    constrainToSelectedRange?: boolean;
    /**
     * If true and `constrainToSelectedRange` is enabled, loop inside the selected range.
     */
    loopSelection?: boolean;
};
