/**
 * Servicio de dominio para gestión de membresías y roles.
 * Incluye lógica de negocio y validaciones robustas.
 */
import { Membership, Role, MembershipStatus } from "../entities/Membership";
import { IMembershipRepository } from "../repositories/IMembershipRepository";
export declare class MembershipService {
    private repo;
    constructor(repo: IMembershipRepository);
    /**
     * Agrega un nuevo miembro a la organización.
     */
    addMember(membership: Membership): Promise<void>;
    /**
     * Cambia el rol de un miembro, validando reglas de negocio.
     */
    changeRole(membershipId: string, newRole: Role): Promise<void>;
    /**
     * Elimina un miembro, validando que no sea el último OWNER.
     */
    removeMember(membershipId: string): Promise<void>;
    /**
     * Lista los miembros de una organización.
     */
    listMembers(organizationId: string): Promise<Membership[]>;
    /**
     * Suspende o reactiva un miembro.
     */
    setStatus(membershipId: string, status: MembershipStatus): Promise<void>;
}
//# sourceMappingURL=MembershipService.d.ts.map