import { ConversationMember } from "../../../interfaces/models/ConversationMember";
export interface UseConversationMembersProps {
    conversationId: string;
}
export interface UseConversationMembersValues {
    members: ConversationMember[];
    loading: boolean;
    addMember: ({ userId }: {
        userId: string;
    }) => Promise<void>;
    removeMember: ({ userId }: {
        userId: string;
    }) => Promise<void>;
    leave: () => Promise<void>;
    changeRole: ({ userId, role }: {
        userId: string;
        role: "admin" | "member";
    }) => Promise<void>;
    /** 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, }: UseConversationMembersProps): UseConversationMembersValues;
export default useConversationMembers;
