import React from 'react'; import * as PushAPI from '@pushprotocol/restapi'; import { SpaceDTO, SpaceIFeeds } from '@pushprotocol/restapi'; import { SignerType } from '../types'; import { ENV } from '../config'; import { FeedTabs } from '../components/space/SpaceFeed'; export interface ISpaceInfo { [key: string]: SpaceDTO; } export interface ISpaceSpeakerData { [key: string]: PushAPI.video.VideoDataType; } export interface ISpacePaginationData { apiData?: SpaceIFeeds[]; currentPage?: number; lastPage?: number; } export interface ICustomSearchResult { account: string; name?: string; handle?: string; image?: string; } export interface ISpaceDataContextValues { account: string; setAccount: React.Dispatch>; signer: SignerType | undefined; setSigner: React.Dispatch>; pgpPrivateKey: string; setPgpPrivateKey: React.Dispatch>; env: ENV; setEnv: React.Dispatch>; chainId: number; setChainId: React.Dispatch>; selectedFeedTab: FeedTabs; setSelectedFeedTab: React.Dispatch>; trendingListData: any; setTrendingListData: React.Dispatch>; spaceInfo: ISpaceInfo; setSpaceInfo: (key: string, value: SpaceDTO) => void; getSpaceInfo: (key: string) => SpaceDTO | undefined; spaceWidgetId: string; setSpaceWidgetId: React.Dispatch>; mySpaces: ISpacePaginationData; setMySpaces: (paginationData: ISpacePaginationData) => void; popularSpaces: ISpacePaginationData; setPopularSpaces: (paginationData: ISpacePaginationData) => void; spaceRequests: ISpacePaginationData; setSpaceRequests: (paginationData: ISpacePaginationData) => void; pushSpaceSocket: any; setPushSpaceSocket: React.Dispatch>; isPushSDKSocketConnected: boolean; setIsPushSDKSocketConnected: React.Dispatch>; spaceObjectData: PushAPI.SpaceData; setSpaceObjectData: (data: any) => void; initSpaceObject: (data: any) => Promise; spacesObjectRef: React.MutableRefObject; isJoined: boolean; isSpeaker: boolean; isListener: boolean; speakerData: ISpaceSpeakerData; setSpeakerData: (key: string, value: PushAPI.video.VideoDataType) => void; acceptSpaceRequest: (spaceMetaData: PushAPI.video.VideoDataType) => Promise; connectSpaceRequest: (spaceMetaData: PushAPI.video.VideoDataType) => Promise; broadcastRaisedHand: (spaceMetaData: PushAPI.video.VideoDataType) => Promise; customSearch?: (query: string) => ICustomSearchResult; raisedHandInfo: Record; } export declare const initialSpaceDataContextValues: ISpaceDataContextValues; export declare const SpaceDataContext: React.Context;