import { FetchRepositoryBase } from "../../../shared/index.js"; import type { AddTeamMemberInput, BulkDestroyInput, ContextType, ListAvailableParams, ListTeamMembersParams, MemberType, ResolvedContext, ResolvedMember, ResolvedRole, Roleship, TeamMembersListResponse, UpdateTeamMemberInput } from "./AdminTeamMembersTypes.js"; type Group = { id: number; name: string; }; type AdminUser = { id: number; email: string; username: string; first_name?: string; last_name?: string; }; export declare class AdminTeamMembersRepository extends FetchRepositoryBase { /** * Add a team member (user or group) to a context with a specific role * API: PUT /team_members/add */ addMember(input: AddTeamMemberInput): Promise; /** * Update a team member's role in a context * API: PUT /team_members/{id} */ updateMemberRole(roleshipId: number, input: UpdateTeamMemberInput): Promise; /** * Remove team members from a context * API: DELETE /team_members/bulk_destroy */ removeMembers(contextKey: ContextType, contextId: number, input: BulkDestroyInput): Promise; /** * List team members in a context * API: GET /team_members/admin_users */ listMembers(params: ListTeamMembersParams): Promise; /** * List available members (users/groups not yet assigned) for a context * API: GET /team_members/available */ listAvailable(params: ListAvailableParams): Promise<{ users: AdminUser[]; groups: Group[]; meta: { total_entries: number; per_page: number; current_page: number; }; }>; /** * Resolve a context identifier (ID or slug/name) to a context ID * @param contextType - Type of context (site, space, realm) * @param identifier - ID (as string or number) or slug/name * @returns Resolved context with ID and name */ resolveContext(contextType: ContextType, identifier: string | number): Promise; private resolveContextById; private resolveContextByName; /** * Resolve a member identifier to a member ID * @param identifier - ID, email, username (for users) or group name (for groups) * @param memberType - Type of member (user or group) * @returns Resolved member with ID, type and name */ resolveMember(identifier: string | number, memberType: MemberType): Promise; private resolveUserByIdentifier; private resolveGroupByName; /** * Resolve a role identifier to a role ID, validating it matches the context * @param identifier - Role ID or key * @param expectedContext - The context type the role should belong to * @returns Resolved role with ID, key, name and context */ resolveRole(identifier: string | number, expectedContext: ContextType): Promise; /** * Find a member's roleship ID in a context (needed for update/remove) * @returns The roleship ID if found, null otherwise */ findMemberRoleship(contextKey: ContextType, contextId: number, memberId: number, memberType: MemberType): Promise; } export {}; //# sourceMappingURL=AdminTeamMembersRepository.d.ts.map