import React from 'react';
import { SendbirdChatParams } from '@sendbird/chat';
import { GroupChannelModule } from '@sendbird/chat/groupChannel';
import { OpenChannelModule } from '@sendbird/chat/openChannel';
import type { HeaderStyleContextType, UIKitTheme } from '@sendbird/uikit-react-native-foundation';
import { SBUConfig } from '@sendbird/uikit-tools';
import { PartialDeep, SendbirdChatSDK, SendbirdGroupChannel, SendbirdGroupChannelCreateParams, SendbirdMember, SendbirdReactedUserInfo, SendbirdUser } from '@sendbird/uikit-utils';
import { type SBUHandlers } from '../contexts/SBUHandlersCtx';
import type { ChatRelatedFeaturesInUIKit } from '../contexts/SendbirdChatCtx';
import type { ImageCompressionConfigInterface } from '../libs/ImageCompressionConfig';
import { MentionConfigInterface } from '../libs/MentionConfig';
import { VoiceMessageConfigInterface } from '../libs/VoiceMessageConfig';
import type { StringSet } from '../localization/StringSet.type';
import type { ClipboardServiceInterface, FileServiceInterface, MediaServiceInterface, NotificationServiceInterface, PlayerServiceInterface, RecorderServiceInterface } from '../platform/types';
import { ErrorBoundaryProps, LocalCacheStorage } from '../types';
export declare const SendbirdUIKit: Readonly<{
    VERSION: "3.9.4";
    PLATFORM: string;
    DEFAULT: {
        AUTO_PUSH_TOKEN_REGISTRATION: boolean;
        USE_USER_ID_FOR_NICKNAME: boolean;
        IMAGE_COMPRESSION: boolean;
    };
}>;
export type ChatOmittedInitParams = SendbirdChatParams<[GroupChannelModule, OpenChannelModule]>;
export type SendbirdUIKitContainerProps = React.PropsWithChildren<{
    appId: string;
    platformServices: {
        file: FileServiceInterface;
        notification: NotificationServiceInterface;
        clipboard: ClipboardServiceInterface;
        media: MediaServiceInterface;
        player: PlayerServiceInterface;
        recorder: RecorderServiceInterface;
    };
    chatOptions: Partial<ChatOmittedInitParams> & Partial<ChatRelatedFeaturesInUIKit> & {
        onInitialized?: (sdkInstance: SendbirdChatSDK) => SendbirdChatSDK;
        localCacheStorage: LocalCacheStorage;
    };
    uikitOptions?: PartialDeep<{
        common: SBUConfig['common'];
        groupChannel: Omit<SBUConfig['groupChannel']['channel'], 'enableReactionsSupergroup'> & {
            /**
             * @deprecated Currently, this feature is turned off by default. If you wish to use this feature, contact us: {@link https://dashboard.sendbird.com/settings/contact_us?category=feedback_and_feature_requests&product=UIKit}
             */
            enableReactionsSupergroup: never;
        };
        groupChannelList: SBUConfig['groupChannel']['channelList'];
        groupChannelSettings: SBUConfig['groupChannel']['setting'];
        openChannel: SBUConfig['openChannel']['channel'];
    }>;
    localization?: {
        stringSet?: StringSet;
    };
    styles?: {
        theme?: UIKitTheme;
        statusBarTranslucent?: boolean;
        defaultHeaderTitleAlign?: 'left' | 'center';
        defaultHeaderHeight?: number;
        HeaderComponent?: HeaderStyleContextType['HeaderComponent'];
    };
    errorBoundary?: {
        disabled?: boolean;
        onError?: (props: ErrorBoundaryProps) => void;
        ErrorInfoComponent?: (props: ErrorBoundaryProps) => React.ReactNode;
    };
    handlers?: Partial<SBUHandlers>;
    toast?: {
        dismissTimeout?: number;
    };
    userProfile?: {
        onCreateChannel: (channel: SendbirdGroupChannel) => void;
        onBeforeCreateChannel?: (channelParams: SendbirdGroupChannelCreateParams, users: SendbirdUser[] | SendbirdMember[] | SendbirdReactedUserInfo[]) => SendbirdGroupChannelCreateParams | Promise<SendbirdGroupChannelCreateParams>;
    };
    reaction?: {
        onPressUserProfile?: (user: SendbirdReactedUserInfo) => void;
    };
    userMention?: Pick<Partial<MentionConfigInterface>, 'mentionLimit' | 'suggestionLimit' | 'debounceMills'>;
    imageCompression?: Partial<ImageCompressionConfigInterface>;
    voiceMessage?: PartialDeep<VoiceMessageConfigInterface>;
}>;
declare const SendbirdUIKitContainer: (props: SendbirdUIKitContainerProps) => React.JSX.Element;
export default SendbirdUIKitContainer;
