import React from 'react'; import { RecordingRules, RoomType } from '../types'; import { TwilioError } from 'twilio-video'; import { Settings, SettingsAction } from './settings/settingsReducer'; declare type hosts = { id: string; firstName: string; lastName: string; profilePic: string; }; declare type liveRoomTopic = { id: string; name: string; }; declare type company = { id: string; }; declare type liveRoom = { id: string; name?: string; liveRoomToken?: string; startsAt?: string; endsAt?: string; status?: string; maxParticipants?: number; topic?: liveRoomTopic; hosts?: hosts[]; company?: company; }; export declare type remoteParticipant = { id: string; fullName: string; }; export declare type ParticipantRole = 'GUEST' | 'HOST'; export interface StateContextType { error: TwilioError | Error | null; setError(error: TwilioError | Error | null): void; getToken(name: string, room: string): Promise<{ room_type: RoomType; token: string; }>; isFetching: boolean; activeSinkId: string; setActiveSinkId(sinkId: string): void; settings: Settings; dispatchSetting: React.Dispatch; roomType?: RoomType; updateRecordingRules(room_sid: string, rules: RecordingRules): Promise; shouldSkipRoomSelection: boolean; participantRole: ParticipantRole; liveRoom?: liveRoom; participantDisplayName?: string; toastSoundEffect?: string; onParticipantsChanged?: (ids: string[]) => void; remoteParticipants?: remoteParticipant[]; onParticipantsPanelToggled?: () => void; participantsPanelRootId?: string; onChatToggled?: () => void; chatRootId?: string; onJoin?: () => void; onParticipantPanelToggled?: () => void; onLocalParticipantKicked?: () => void; } export declare const StateContext: React.Context; export interface AppStateProviderProps { getToken?: Promise<{ token: string; }>; participantRole?: ParticipantRole; liveRoom?: liveRoom; participantDisplayName?: string; toastSoundEffect?: string; onParticipantsChanged?: (ids: string[]) => void; remoteParticipants?: remoteParticipant[]; onParticipantsPanelToggled?: () => void; participantsPanelRootId?: string; onChatToggled?: () => void; chatRootId?: string; onJoin?: () => void; onParticipantPanelToggled?: () => void; onLocalParticipantKicked?: () => void; } export default function AppStateProvider({ children, getToken: getTokenExternal, participantRole: participantRoleExternal, liveRoom, participantDisplayName, toastSoundEffect: toastSoundEffectExternal, onParticipantsChanged, remoteParticipants, onParticipantsPanelToggled, participantsPanelRootId, onChatToggled, chatRootId, onJoin, onParticipantPanelToggled, onLocalParticipantKicked, }: React.PropsWithChildren): JSX.Element; export declare function useAppState(): StateContextType; export {};