import React from 'react'; import { RecordingRules, RoomType } from '../types'; import { TwilioError } from 'twilio-video'; import { Settings, SettingsAction } from './settings/settingsReducer'; import { User } from 'firebase'; export interface StateContextType { error: TwilioError | Error | null; setError(error: TwilioError | Error | null): void; getToken(name: string, room: string, passcode?: string): Promise<{ room_type: RoomType; token: string; }>; user?: User | null | { displayName: undefined; photoURL: undefined; passcode?: string; }; signIn?(passcode?: string): Promise; signOut?(): Promise; isAuthReady?: boolean; isFetching: boolean; activeSinkId: string; setActiveSinkId(sinkId: string): void; settings: Settings; dispatchSetting: React.Dispatch; roomType?: RoomType; updateRecordingRules(room_sid: string, rules: RecordingRules): Promise; } export declare const StateContext: React.Context; export default function AppStateProvider(props: React.PropsWithChildren<{}>): JSX.Element; export declare function useAppState(): StateContextType;