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<void>;
    send: (params: SendMessageParams) => Promise<ChatMessage>;
    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<void>;
    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;
