import * as React from 'react'; import { LocalMediaState, LocalMediaOptions, RoomJoinedSuccess, RoomConnectionState, NotificationsEventEmitter, ClientView } from '@whereby.com/core'; export { BreakoutState as Breakout, ChatMessageState as ChatMessage, CloudRecordingState as CloudRecording, LiveStreamState as LiveStreaming, LocalParticipantState as LocalParticipant, RemoteParticipantState as RemoteParticipant, RoomConnectionState as RoomConnection, ScreenshareState as Screenshare, WaitingParticipantState as WaitingParticipant } from '@whereby.com/core'; import * as _radix_ui_react_popover from '@radix-ui/react-popover'; import { PopoverProps } from '@radix-ui/react-popover'; interface ProviderProps { children: React.ReactNode; } declare function Provider({ children }: ProviderProps): React.JSX.Element; interface VideoViewSelfProps { stream: MediaStream; muted?: boolean; mirror?: boolean; style?: React.CSSProperties; onVideoResize?: ({ width, height, stream }: { width: number; height: number; stream: MediaStream; }) => void; } type WherebyVideoElement = HTMLVideoElement & { captureAspectRatio: () => number; onVideoResize: ({ width, height, stream }: { width: number; height: number; stream: MediaStream; }) => void; }; type VideoViewProps = VideoViewSelfProps & React.DetailedHTMLProps, WherebyVideoElement>; declare const VideoView: React.ForwardRefExoticComponent & React.RefAttributes>; interface LocalMediaActions { setCameraDevice: (deviceId: string) => void; setMicrophoneDevice: (deviceId: string) => void; setSpeakerDevice: (deviceId: string) => void; toggleCameraEnabled: (enabled?: boolean) => void; toggleMicrophoneEnabled: (enabled?: boolean) => void; toggleLowDataModeEnabled: (enabled?: boolean) => void; } type UseLocalMediaResult = { state: LocalMediaState; actions: LocalMediaActions; }; type UseLocalMediaOptions = LocalMediaOptions; interface RoomConnectionOptions { displayName?: string; localMediaOptions?: LocalMediaOptions; roomKey?: string; localMedia?: UseLocalMediaResult; externalId?: string; } interface UseRoomConnectionOptions extends Omit { localMedia?: UseLocalMediaResult; } interface RoomConnectionActions { toggleLowDataMode: (enabled?: boolean) => void; toggleRaiseHand: (enabled?: boolean) => void; askToSpeak: (participantId: string) => void; askToTurnOnCamera: (participantId: string) => void; acceptWaitingParticipant: (participantId: string) => void; knock: () => void; cancelKnock: () => void; joinRoom: () => Promise; leaveRoom: () => void; lockRoom: (locked: boolean) => void; muteParticipants: (clientIds: string[]) => void; turnOffParticipantCameras: (clientIds: string[]) => void; kickParticipant: (clientId: string) => void; endMeeting: (stayBehind?: boolean) => void; rejectWaitingParticipant: (participantId: string) => void; sendChatMessage: (text: string) => void; setDisplayName: (displayName: string) => void; startCloudRecording: () => void; startLiveTranscription: () => void; startScreenshare: () => void; stopCloudRecording: () => void; stopLiveTranscription: () => void; stopScreenshare: () => void; toggleCamera: (enabled?: boolean) => void; toggleMicrophone: (enabled?: boolean) => void; spotlightParticipant: (clientId: string) => void; removeSpotlight: (clientId: string) => void; joinBreakoutGroup: (group: string) => void; joinBreakoutMainRoom: () => void; switchCameraEffect: (effectId: string) => Promise; switchCameraEffectCustom: (imageUrl: string) => Promise; clearCameraEffect: () => Promise; } type RoomConnectionRef = { state: Omit; actions: RoomConnectionActions; events?: NotificationsEventEmitter; }; declare function useRoomConnection(roomUrl: string, roomConnectionOptions?: UseRoomConnectionOptions): RoomConnectionRef; declare function useLocalMedia(optionsOrStream?: UseLocalMediaOptions | MediaStream): UseLocalMediaResult; type GridCellSelfProps = { participant: ClientView; }; type GridCellProps = GridCellSelfProps & React.DetailedHTMLProps, HTMLDivElement>; declare const GridCell: React.ForwardRefExoticComponent & React.RefAttributes>; declare const GridVideoView: React.ForwardRefExoticComponent & { stream?: MediaStream; } & React.RefAttributes>; interface GridProps { renderParticipant?: ({ participant }: { participant: ClientView; }) => React.ReactNode; renderFloatingParticipant?: ({ participant }: { participant: ClientView; }) => React.ReactNode; gridGap?: number; videoGridGap?: number; enableSubgrid?: boolean; stageParticipantLimit?: number; enableParticipantMenu?: boolean; enableConstrainedGrid?: boolean; } declare function Grid({ renderParticipant, renderFloatingParticipant, stageParticipantLimit, gridGap, videoGridGap, enableSubgrid, enableParticipantMenu, enableConstrainedGrid, }: GridProps): React.JSX.Element; declare const ParticipantMenu: (props: PopoverProps) => React.JSX.Element; declare const ParticipantMenuContent: React.ForwardRefExoticComponent, "ref"> & React.RefAttributes, "ref"> & React.RefAttributes>; declare const ParticipantMenuTrigger: React.ForwardRefExoticComponent, "ref"> & React.RefAttributes>; declare const ParticipantMenuItem: React.ForwardRefExoticComponent, HTMLButtonElement>, "ref"> & { participantAction?: "maximize" | "spotlight" | "float"; } & React.RefAttributes>; export { GridCell, GridVideoView, ParticipantMenu, ParticipantMenuContent, ParticipantMenuItem, ParticipantMenuTrigger, Grid as VideoGrid, VideoView, Provider as WherebyProvider, useLocalMedia, useRoomConnection }; export type { RoomConnectionActions, RoomConnectionOptions, UseLocalMediaResult };