///
import { ChatObject, MessageObject, PersonObject } from '../interfaces';
export declare const sortChats: (chats: ChatObject[]) => ChatObject[];
export declare const sortMessages: (messages: MessageObject[]) => MessageObject[];
export declare const useMultiChatLogic: (projectId: string, username: string, secret: string, httpUrl?: string | undefined) => {
onConnect: () => Promise;
onAuthFail: () => Promise;
onGetChats: (chats?: ChatObject[]) => Promise;
onNewChat: (chat: ChatObject) => Promise;
onEditChat: (newChat: ChatObject) => Promise;
onDeleteChat: (oldChat: ChatObject) => Promise;
onGetMessages: (chatId: number, messages: MessageObject[]) => Promise;
onNewMessage: (chatId: number, newMessage: MessageObject) => Promise;
onEditMessage: (chatId: number, newMessage: MessageObject) => Promise;
onDeleteMessage: (chatId: number, oldMessage: MessageObject) => Promise;
onIsTyping: (id: number, person: PersonObject) => Promise;
projectId: string;
username: string;
secret: string;
httpUrl: string | undefined;
wsUrl: string | undefined;
chats: ChatObject[];
setChats: import("react").Dispatch>;
messages: MessageObject[];
setMessages: import("react").Dispatch>;
peopleToInvite: PersonObject[];
setPeopleToInvite: import("react").Dispatch>;
activeChatId: number | undefined;
setActiveChatId: import("react").Dispatch>;
chat: ChatObject | undefined;
hasMoreChats: boolean;
setHasMoreChats: import("react").Dispatch>;
hasMoreMessages: boolean;
setHasMoreMessages: import("react").Dispatch>;
isChatFeedAtBottom: boolean;
setIsChatFeedAtBottom: import("react").Dispatch>;
isChatListLoading: boolean;
setIsChatListLoading: import("react").Dispatch>;
isChatFeedLoading: boolean;
setIsChatFeedLoading: import("react").Dispatch>;
isChatSettingsLoading: boolean;
setIsChatSettingsLoading: import("react").Dispatch>;
isMobileChatListOpen: boolean;
setIsMobileChatListOpen: import("react").Dispatch>;
isMobileChatSettingsOpen: boolean;
setIsMobileChatSettingsOpen: import("react").Dispatch>;
onChatFormSubmit: (title: string) => Promise;
onChatCardClick: (newActiveChatId: number) => 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;
};