@100mslive/react-native-room-kit
Version:
100ms Room Kit provides simple & easy to use UI components to build Live Streaming & Video Conferencing experiences in your apps.
117 lines • 3.03 kB
TypeScript
import type { HMSException, HMSPeer } from '@100mslive/react-native-hms';
import type { HMSIOSScreenShareConfig, OnLeaveHandler } from './utils/types';
export declare enum MeetingState {
NOT_JOINED = 0,
IN_PREVIEW = 1,
IN_MEETING = 2,
EXITED = 3,
MEETING_ENDED = 4,
ERROR = 5
}
export interface HMSPrebuiltCommonProps {
options?: {
userName?: string;
userId?: string;
endPoints?: {
init: string;
token: string;
layout: string;
};
debugMode?: boolean;
ios?: HMSIOSScreenShareConfig;
};
/**
* onLeave - Optional callback function
*
* It will be invoked when user leaves meeting or user is removed from the room
*/
onLeave?: OnLeaveHandler;
/**
* [Android Only] handleBackButton - `Optional<Boolean>` | Default value - `false`
*
* When `true`, Leave modal will open on press of back button on android
* otherwise user will leave meeting immediately without any confirmation modal opening
*
* Example usage:
* ```jsx
* const isScreenFocused = useIsFocused();
*
* ...
*
* <HMSPrebuilt
* {...}
* handleBackButton={isScreenFocused}
* />
* ```
*/
handleBackButton?: boolean;
/**
* [Android Only] autoEnterPipMode - `Optional<Boolean>` | Default value - `false`
*
* When `true`, App will go into PIP mode automatically when user tries to leave or minimize app while it is inside room
*
* Example usage:
* ```jsx
* <HMSPrebuilt
* {...}
* autoEnterPipMode={true}
* />
* ```
*/
autoEnterPipMode?: boolean;
}
export type HMSPrebuiltConditionalProps = {
roomCode: string;
token?: never;
} | {
roomCode?: never;
token: string;
};
export type HMSPrebuiltProps = HMSPrebuiltCommonProps & HMSPrebuiltConditionalProps;
export declare enum NotificationTypes {
INFO = "info",
ROLE_CHANGE_DECLINED = "role_change_declined",
RECONNECTING = "reconnecting",
HAND_RAISE = "hand_raise",
LOCAL_SCREENSHARE = "local_screenshare",
ERROR = "error",
TERMINAL_ERROR = "terminal_error",
POLLS_AND_QUIZZES = "polls_and_quizzes"
}
export type Notification = {
id: string;
type: NotificationTypes;
} | {
id: string;
type: NotificationTypes;
icon?: string | React.ReactElement;
message?: string;
title: string;
payload?: any;
} | {
id: string;
type: NotificationTypes;
icon?: string | React.ReactElement;
peer: HMSPeer;
} | {
id: string;
type: NotificationTypes;
icon?: string | React.ReactElement;
exception: HMSException;
};
export type PinnedMessage = {
text: string;
id: string;
pinnedBy: string;
authorId: string;
};
export type ChatState = {
enabled: boolean;
updatedBy: {
peerID: string;
userID: string;
userName: string;
};
updatedAt: number;
};
//# sourceMappingURL=types.d.ts.map