import React from 'react';
import { SendbirdState } from '../types';
import { TwoDepthPartial } from '../../../utils/typeHelpers/partialDeep';
/**
 * SendbirdContext
 */
export declare const SendbirdContext: React.Context<import("../../../utils/storeManager").Store<SendbirdState>>;
/**
 * Create store for Sendbird context
 */
export declare const createSendbirdContextStore: (props?: TwoDepthPartial<SendbirdState>) => import("../../../utils/storeManager").Store<{
    config: {
        renderUserProfile?: (props: import("../types").RenderUserProfileProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
        onStartDirectMessage?: (props: import("@sendbird/chat/groupChannel").GroupChannel) => void;
        allowProfileEdit: boolean;
        isOnline: boolean;
        userId: string;
        appId: string;
        accessToken?: string;
        theme: string;
        htmlTextDirection: import("../types").HTMLTextDirection;
        forceLeftToRightMessageLayout: boolean;
        pubSub: import("../../pubSub/topics").SBUGlobalPubSub;
        logger: import("../../Logger").LoggerInterface;
        setCurrentTheme: (theme: "light" | "dark") => void;
        userListQuery?: () => import("../types").UserListQuery;
        uikitUploadSizeLimit: number;
        uikitMultipleFilesMessageLimit: number;
        voiceRecord: {
            maxRecordingTime: number;
            minRecordingTime: number;
        };
        userMention: {
            maxMentionCount: number;
            maxSuggestionCount: number;
        };
        imageCompression: import("../types").ImageCompressionOptions;
        markAsReadScheduler: import("../../hooks/useMarkAsReadScheduler").MarkAsReadSchedulerType;
        markAsDeliveredScheduler: import("../../hooks/useMarkAsDeliveredScheduler").MarkAsDeliveredSchedulerType;
        disableMarkAsDelivered: boolean;
        isMultipleFilesMessageEnabled: boolean;
        autoscrollMessageOverflowToTop: boolean;
        common: {
            enableUsingDefaultUserProfile: boolean;
        };
        groupChannel: {
            enableOgtag: boolean;
            enableTypingIndicator: boolean;
            enableReactions: boolean;
            enableMention: boolean;
            replyType: "none" | "quote_reply" | "thread";
            threadReplySelectType: "parent" | "thread";
            enableVoiceMessage: boolean;
            typingIndicatorTypes: Set<"text" | "bubble">;
            enableDocument: boolean;
            enableFeedback: boolean;
            enableSuggestedReplies: boolean;
            showSuggestedRepliesFor: "all_messages" | "last_message_only";
            suggestedRepliesDirection: "vertical" | "horizontal";
            enableMarkdownForUserMessage: boolean;
            enableFormTypeMessage: boolean;
            enableMarkAsUnread: boolean;
            enableReactionsSupergroup: never;
        };
        groupChannelList: {
            enableTypingIndicator: boolean;
            enableMessageReceiptStatus: boolean;
        };
        groupChannelSettings: {
            enableMessageSearch: boolean;
        };
        openChannel: {
            enableOgtag: boolean;
            enableDocument: boolean;
        };
        onUserProfileMessage?: (props: import("@sendbird/chat/groupChannel").GroupChannel) => void;
        disableUserProfile: boolean;
        isReactionEnabled: boolean;
        isMentionEnabled: boolean;
        isVoiceMessageEnabled?: boolean;
        replyType: import("../types").ReplyType;
        showSearchIcon?: boolean;
        isTypingIndicatorEnabledOnChannelList?: boolean;
        isMessageReceiptStatusEnabledOnChannelList?: boolean;
        setCurrenttheme: (theme: "light" | "dark") => void;
    };
    stores: {
        sdkStore: import("../types").SdkStore;
        userStore: import("../types").UserStore;
        appInfoStore: import("../types").AppInfoStore;
    };
    eventHandlers: {
        reaction?: {
            onPressUserProfile?(member: import("@sendbird/chat").User): void;
        };
        connection?: {
            onConnected?(user: import("@sendbird/chat").User): void;
            onFailed?(error: import("@sendbird/chat").SendbirdError): void;
        };
        modal?: {
            onMounted?(params: {
                id: string;
                close(): void;
            }): void | (() => void);
        };
        message?: {
            onSendMessageFailed?: (message: import("../../../utils").CoreMessageType, error: unknown) => void;
            onUpdateMessageFailed?: (message: import("../../../utils").CoreMessageType, error: unknown) => void;
            onFileUploadFailed?: (error: unknown) => void;
        };
    };
    emojiManager: import("../../emojiManager").EmojiManager;
    utils: {
        updateMessageTemplatesInfo: (templateKeys: string[], messageId: number, createdAt: number) => Promise<void>;
        getCachedTemplate: (key: string) => import("../types").ProcessedMessageTemplate;
    };
}>;
/**
 * A specialized hook for Sendbird state management
 * @returns {ReturnType<typeof createStore<SendbirdState>>}
 */
export declare const useSendbirdStore: () => {
    state: SendbirdState;
    updateState: (updates: Partial<SendbirdState>) => void;
};
