import React, { ReactNode } from 'react';
interface CometChatContextInterface {
    chatFeatures: CometChatSettingsInterface['chatFeatures'];
    callFeatures: CometChatSettingsInterface['callFeatures'];
    styleFeatures: CometChatSettingsInterface['style'];
    layoutFeatures: CometChatSettingsInterface['layout'];
    noCodeFeatures: CometChatSettingsInterface['noCode'];
    aiAgentFeatures: CometChatSettingsInterface['agent'];
    setChatFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['chatFeatures']>>;
    setCallFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['callFeatures']>>;
    setStyleFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['style']>>;
    setLayoutFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['layout']>>;
    setNoCodeFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['noCode']>>;
    setAiAgentFeatures: React.Dispatch<React.SetStateAction<CometChatSettingsInterface['agent']>>;
}
interface CometChatProviderProps {
    children: ReactNode;
    authBuilderSetting?: CometChatSettingsInterface;
}
export declare const CometChatProvider: React.FC<CometChatProviderProps>;
export declare const useCometChatContext: () => CometChatContextInterface;
export interface CometChatSettingsInterface {
    chatFeatures: {
        coreMessagingExperience: {
            typingIndicator: boolean;
            threadConversationAndReplies: boolean;
            photosSharing: boolean;
            videoSharing: boolean;
            audioSharing: boolean;
            fileSharing: boolean;
            editMessage: boolean;
            deleteMessage: boolean;
            messageDeliveryAndReadReceipts: boolean;
            userAndFriendsPresence: boolean;
            conversationAndAdvancedSearch?: boolean;
            moderation?: boolean;
        };
        deeperUserEngagement: {
            mentions: boolean;
            reactions: boolean;
            messageTranslation: boolean;
            polls: boolean;
            collaborativeWhiteboard: boolean;
            collaborativeDocument: boolean;
            voiceNotes: boolean;
            emojis: boolean;
            stickers: boolean;
            userInfo: boolean;
            groupInfo: boolean;
        };
        aiUserCopilot: {
            conversationStarter: boolean;
            conversationSummary: boolean;
            smartReply: boolean;
        };
        groupManagement: {
            createGroup: boolean;
            addMembersToGroups: boolean;
            joinLeaveGroup: boolean;
            deleteGroup: boolean;
            viewGroupMembers: boolean;
        };
        moderatorControls: {
            kickUsers: boolean;
            banUsers: boolean;
            promoteDemoteMembers: boolean;
        };
        privateMessagingWithinGroups: {
            sendPrivateMessageToGroupMembers: boolean;
        };
    };
    callFeatures: {
        voiceAndVideoCalling: {
            oneOnOneVoiceCalling: boolean;
            oneOnOneVideoCalling: boolean;
            groupVideoConference: boolean;
            groupVoiceConference: boolean;
        };
    };
    layout: {
        withSideBar: boolean;
        tabs: string[];
        chatType: string;
    };
    style: {
        theme: string;
        color: {
            brandColor: string;
            primaryTextLight: string;
            primaryTextDark: string;
            secondaryTextLight: string;
            secondaryTextDark: string;
        };
        typography: {
            font: string;
            size: string;
        };
    };
    noCode?: {
        docked: boolean;
        styles: {
            buttonBackGround: string;
            buttonShape: string;
            openIcon: string;
            closeIcon: string;
            customJs: string;
            customCss: string;
            dockedAlignment?: string;
        };
    };
    agent?: {
        chatHistory: boolean;
        newChat: boolean;
        agentIcon: string;
        showAgentIcon: boolean;
    };
}
interface CometChatVisualBuilderReact {
    name: string;
    version: string;
}
declare global {
    interface Window {
        CometChatVisualBuilderReact: CometChatVisualBuilderReact;
    }
}
export {};
