import * as React from 'react';
import { type LucideProps } from 'lucide-react';
interface StreamViewProps extends React.ComponentProps<'video'> {
    stream?: MediaStream | null;
    mirror?: boolean;
}
declare const StreamView: React.ForwardRefExoticComponent<Omit<StreamViewProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
declare const LocalStreamView: React.ForwardRefExoticComponent<Omit<StreamViewProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
declare const RemoteStreamView: React.ForwardRefExoticComponent<Omit<StreamViewProps, "ref"> & React.RefAttributes<HTMLVideoElement>>;
interface FullscreenStreamViewProps extends React.ComponentProps<'div'> {
    element: React.ReactElement<StreamViewProps>;
    pipElement?: React.ReactElement<StreamViewProps>;
    navElement?: React.ReactElement<HTMLElement>;
    hideIconElement?: React.ReactElement;
    showIconElement?: React.ReactElement;
    containerProps?: React.ComponentProps<'div'>;
    fullscreenButtonProps?: React.ComponentProps<'button'>;
    fullscreenButtonIconProps?: LucideProps;
    pipProps?: React.ComponentProps<'div'>;
    pipButtonProps?: React.ComponentProps<'button'>;
    pipButtonIconProps?: LucideProps;
}
interface FullscreenStreamViewRef extends React.ComponentRef<'div'> {
    isFullscreen: boolean;
    isPictureInPicture: boolean;
    toggleFullscreen: () => Promise<void>;
    togglePictureInPicture: () => void;
}
declare const FullscreenStreamView: React.ForwardRefExoticComponent<Omit<FullscreenStreamViewProps, "ref"> & React.RefAttributes<FullscreenStreamViewRef>>;
export { StreamView, LocalStreamView, RemoteStreamView, FullscreenStreamView, type StreamViewProps, type FullscreenStreamViewProps, type FullscreenStreamViewRef, };
//# sourceMappingURL=stream-view.d.ts.map