import type { MembershipLookup, OrganizationMemberRole } from "../contracts/membership"; import { type AuthUser } from "./authContext"; type MembershipRepositoryLike = MembershipLookup; declare class MembershipService { private readonly members; constructor(members?: MembershipRepositoryLike); listOrganizationIdsForUser(userId: number): Promise; getOrgRole(userId: number, organizationId: number): Promise; requireOrgAccess(organizationId: number, minimumRole?: OrganizationMemberRole, user?: AuthUser | null): Promise; filterAccessibleOrganizationIds(organizationIds: number[], user?: AuthUser | null): Promise; addOwnerOnOrganizationCreate(organizationId: number, userId: number): Promise; listMembersForOrganization(organizationId: number): Promise; addMember(input: { organizationId: number; userId: number; role?: OrganizationMemberRole; }): Promise; removeMember(organizationId: number, userId: number): Promise; updateMemberRole(organizationId: number, userId: number, role: OrganizationMemberRole): Promise; } export type { MembershipRepositoryLike }; export default MembershipService; export { resolveMembershipService } from "./resolveMembershipService.ts";