import { SendMessageParams } from "./messages/useSendMessage"; import { UseConversationMembersValues } from "./conversations/useConversationMembers"; import { ChatMessage } from "../../interfaces/models/ChatMessage"; export interface UseConversationDataProps { conversationId: string; } export interface UseConversationDataValues { messages: ChatMessage[]; messagesLoading: boolean; hasMore: boolean; loadOlder: () => Promise; send: (params: SendMessageParams) => Promise; members: UseConversationMembersValues["members"]; membersLoading: UseConversationMembersValues["loading"]; addMember: UseConversationMembersValues["addMember"]; removeMember: UseConversationMembersValues["removeMember"]; leave: UseConversationMembersValues["leave"]; changeRole: UseConversationMembersValues["changeRole"]; upsertMember: UseConversationMembersValues["upsertMember"]; removeMemberLocally: UseConversationMembersValues["removeMemberLocally"]; mark: ({ messageId }: { messageId: string; }) => Promise; typingUsers: string[]; startTyping: () => void; stopTyping: () => void; } /** * High-level composition hook that powers ConversationProvider. * Combines messages, send, members, read-state, and typing indicators into one object. */ declare function useConversationData({ conversationId, }: UseConversationDataProps): UseConversationDataValues; export default useConversationData;