import { ConversationMember } from "../../../interfaces/models/ConversationMember"; import { SpaceReputationContextParams } from "../../../interfaces/SpaceReputation"; export interface UseConversationMembersProps extends SpaceReputationContextParams { conversationId: string; } export interface UseConversationMembersValues { members: ConversationMember[]; loading: boolean; addMember: ({ userId }: { userId: string; }) => Promise; removeMember: ({ userId }: { userId: string; }) => Promise; leave: () => Promise; changeRole: ({ userId, role }: { userId: string; role: "admin" | "member"; }) => Promise; /** Upsert a member into the local list (for real-time socket updates). */ upsertMember: (member: ConversationMember) => void; /** Remove a member from the local list by userId (for real-time socket updates). */ removeMemberLocally: ({ userId }: { userId: string; }) => void; } declare function useConversationMembers({ conversationId, spaceReputation, spaceReputationId, spaceReputationDescendants, }: UseConversationMembersProps): UseConversationMembersValues; export default useConversationMembers;