import { DataSource } from 'typeorm'; import { CaliobaseConfig } from '../config/config'; import { Role } from '../entity-module/roles'; import { AbstractOrganizationProfile } from './entities/abstract-organization-profile.entity'; import { MemberInvitationToken } from './entities/member-invitation-token.entity'; import { Member } from './entities/member.entity'; import { Organization } from './entities/organization.entity'; import { User } from './entities/user.entity'; import { JwtSignerService } from './jwt-signer.service'; import { AbstractProfileService } from './profiles.service'; export type CreateOrganizationRequest = { profile: Partial | null; }; export declare class OrganizationService { private dataSource; private caliobaseConfig; private profileService; private jwtSigner; private readonly userRepo; private readonly memberRepo; private readonly orgRepo; private readonly memberInviteRepo; constructor(dataSource: DataSource, caliobaseConfig: CaliobaseConfig, profileService: AbstractProfileService, jwtSigner: JwtSignerService); findUserMemberships(userId: string): Promise; findOrganizationMembers(organizationId: string): Promise; getMember(userId: string, organizationId: string): Promise; getUserById(userId: string): Promise>; getOrganizationById(organizationId: string): Promise>; createOrganization(userId: string, { profile: createProfile, ...createRequest }: CreateOrganizationRequest): Promise<{ profile: AbstractOrganizationProfile | undefined; id: string; createdAt?: Date | undefined; updatedAt?: Date | undefined; }>; createMemberAccessToken(userId: string, organizationId: string, options?: { joinAsGuestIfNotMember?: boolean; }): Promise; createGuestAccessToken(organizationId: string): Promise; createInvitation(invitedBy: Member, roles: Role[]): Promise; updateMember(actingMember: Member, targetMember: Member, update: { roles: Role[]; }): Promise; removeMember(actingMember: Member, targetMember: Member): Promise; getInvitation(token: string): Promise; claimInvitation(userId: string, token: string): Promise; administrativelyAddMember(organization: Pick, user: User, roles: Role[]): Promise; joinAsGuest(organization: Organization, user: User): Promise; }