import React from 'react'; import { SBUConfig } from '@sendbird/uikit-tools'; import type { SendbirdChatSDK, SendbirdGroupChannel, SendbirdUser } from '@gathertown/uikit-utils'; import type EmojiManager from '../libs/EmojiManager'; import type ImageCompressionConfig from '../libs/ImageCompressionConfig'; import type MentionManager from '../libs/MentionManager'; import type { FileType } from '../platform/types'; export interface ChatRelatedFeaturesInUIKit { enableAutoPushTokenRegistration: boolean; enableUseUserIdForNickname: boolean; enableImageCompression: boolean; } interface Props extends ChatRelatedFeaturesInUIKit, React.PropsWithChildren { sdkInstance: SendbirdChatSDK; emojiManager: EmojiManager; mentionManager: MentionManager; imageCompressionConfig: ImageCompressionConfig; } export type SendbirdChatContextType = { sdk: SendbirdChatSDK; emojiManager: EmojiManager; mentionManager: MentionManager; imageCompressionConfig: ImageCompressionConfig; currentUser?: SendbirdUser; setCurrentUser: React.Dispatch>; updateCurrentUserInfo: (nickname?: string, profile?: string | FileType) => Promise; markAsDeliveredWithChannel: (channel: SendbirdGroupChannel) => void; sbOptions: { uikit: SBUConfig; uikitWithAppInfo: { groupChannel: { channel: { enableReactions: boolean; enableOgtag: boolean; }; setting: { enableMessageSearch: boolean; }; }; openChannel: { channel: { enableOgtag: boolean; }; }; }; chat: { imageCompressionEnabled: boolean; useUserIdForNicknameEnabled: boolean; autoPushTokenRegistrationEnabled: boolean; }; appInfo: { deliveryReceiptEnabled: boolean; broadcastChannelEnabled: boolean; superGroupChannelEnabled: boolean; reactionEnabled: boolean; }; }; }; export declare const SendbirdChatContext: React.Context; export declare const SendbirdChatProvider: ({ children, sdkInstance, emojiManager, mentionManager, imageCompressionConfig, enableAutoPushTokenRegistration, enableUseUserIdForNickname, enableImageCompression, }: Props) => JSX.Element; export {};