///
import { ChatObject, MessageObject, PersonObject } from '../../interfaces';
import { ChatEngineStyles } from './styles';
import { ChatListProps } from './ChatList/props';
import { ChatFormProps } from './ChatList/ChatForm/props';
import { ChatCardProps } from './ChatList/ChatCard/props';
import { ChatFeedProps } from './ChatFeed/props';
import { ChatHeaderProps } from './ChatFeed/ChatHeader/props';
import { MessageListProps } from './ChatFeed/MessageList/props';
import { MessageProps } from './ChatFeed/MessageList/Message/props';
import { MessageFormProps } from './ChatFeed/MessageForm/props';
import { WelcomeGifProps } from './ChatFeed/WelcomeGif/props';
import { ChatSettingsProps } from './ChatSettings/props';
import { ChatAvatarsProps } from './ChatSettings/ChatAvatars/props';
import { PeopleSettingsProps } from './ChatSettings/PeopleSettings/props';
import { PhotosSettingsProps } from './ChatSettings/PhotosSettings/props';
import { OptionsSettingsProps } from './ChatSettings/OptionsSettings/props';
export interface MultiChatWindowProps extends ChatEngineStyles {
username?: string;
chats?: ChatObject[];
activeChatId?: number;
messages?: MessageObject[];
peopleToInvite?: PersonObject[];
timezoneOffset?: number;
isChatListLoading?: boolean;
isChatFeedLoading?: boolean;
isChatSettingsLoading?: boolean;
hasMoreChats?: boolean;
hasMoreMessages?: boolean;
isMobileChatListOpen?: boolean;
isMobileChatSettingsOpen?: boolean;
onChatCardClick?: (chatId: number) => Promise;
onChatFormSubmit?: (title: string) => Promise;
onChatLoaderShow?: () => Promise;
onMessageLoaderShow?: () => Promise;
onMessageLoaderHide?: () => Promise;
onBottomMessageShow?: () => Promise;
onBottomMessageHide?: () => Promise;
onMessageFormSubmit?: (message: MessageObject) => Promise;
onInvitePersonClick?: (person: PersonObject) => Promise;
onRemovePersonClick?: (person: PersonObject) => Promise;
onDeleteChatClick?: (chat: ChatObject) => Promise;
onMobileChatListClick?: () => Promise;
onMobileChatSettingsClick?: () => Promise;
onCloseMobileChatSettingsClick?: () => Promise;
renderChatList?: (props: ChatListProps) => JSX.Element | Element | React.FC;
renderChatForm?: (props: ChatFormProps) => JSX.Element | Element | React.FC;
renderChatCard?: (props: ChatCardProps) => JSX.Element | Element | React.FC;
renderChatFeed?: (props: ChatFeedProps) => JSX.Element | Element | React.FC;
renderChatHeader?: (props: ChatHeaderProps) => JSX.Element | Element | React.FC;
renderMessageList?: (props: MessageListProps) => JSX.Element | Element | React.FC;
renderMessage?: (props: MessageProps) => JSX.Element | Element | React.FC;
renderWelcomeGif?: (props: WelcomeGifProps) => JSX.Element | Element | React.FC;
renderMessageForm?: (props: MessageFormProps) => JSX.Element | Element | React.FC;
renderChatSettings?: (props: ChatSettingsProps) => JSX.Element | Element | React.FC;
renderChatAvatars?: (props: ChatAvatarsProps) => JSX.Element | Element | React.FC;
renderPeopleSettings?: (props: PeopleSettingsProps) => JSX.Element | Element | React.FC;
renderPhotosSettings?: (props: PhotosSettingsProps) => JSX.Element | Element | React.FC;
renderOptionsSettings?: (props: OptionsSettingsProps) => JSX.Element | Element | React.FC;
}