import { SendbirdChatWith, SessionHandler } from '@sendbird/chat';
import { GroupChannelModule } from '@sendbird/chat/groupChannel';
import { OpenChannelModule } from '@sendbird/chat/openChannel';
import type { AppInfoStore, CustomExtensionParams, SdkStore, SendbirdChatInitParams, SendbirdState, UserStore } from './types';
import { LoggerInterface } from '../Logger';
type UpdateAppInfoStoreType = (state: SendbirdState, payload: AppInfoStore) => SendbirdState;
export declare const updateAppInfoStore: UpdateAppInfoStoreType;
type UpdateSdkStoreType = (state: SendbirdState, payload: Partial<SdkStore>) => SendbirdState;
export declare const updateSdkStore: UpdateSdkStoreType;
type UpdateUserStoreType = (state: SendbirdState, payload: Partial<UserStore>) => SendbirdState;
export declare const updateUserStore: UpdateUserStoreType;
export declare function initSDK({ appId, isNewApp, customApiHost, customWebSocketHost, sdkInitParams, }: {
    appId: string;
    isNewApp?: boolean;
    customApiHost?: string;
    customWebSocketHost?: string;
    sdkInitParams?: SendbirdChatInitParams;
}): SendbirdChatWith<(GroupChannelModule | OpenChannelModule)[]>;
/**
 * Sets up the Sendbird SDK after initialization.
 * Configures necessary settings, adds extensions, sets the platform, and configures the session handler if provided.
 */
export declare function setupSDK(sdk: SendbirdChatWith<[GroupChannelModule, OpenChannelModule]>, params: {
    logger: LoggerInterface;
    sessionHandler?: SessionHandler;
    isMobile?: boolean;
    customExtensionParams?: CustomExtensionParams;
}): void;
export {};
