import { FetchRepositoryBase } from "../../../shared/index.js"; import type { GroupList } from "./AdminGroupsRepository.d.js"; type ListGroupParams = { query?: string | undefined; page?: number | undefined; per_page?: number | undefined; }; type UpdateGroupsParams = { name?: string; role_id?: number; admin_users?: number[]; application_access?: { content?: boolean; channels?: boolean; customers?: boolean; insights?: boolean; }; sites?: number[]; realms?: number[]; }; type CreateGroupData = { name: string; role_id: number; admin_users: number[]; application_access: { content?: boolean; channels?: boolean; customers?: boolean; insights?: boolean; }; }; export declare class AdminGroupsRepository extends FetchRepositoryBase { getGroups(queryParams: ListGroupParams): Promise; getGroup(id: number): Promise; createGroup(data: CreateGroupData): Promise; updateGroup(id: number, data: UpdateGroupsParams): Promise; deleteGroup(id: number, validation: string): Promise; /** * Find a group by name (case-insensitive search) * @param name - The group name to search for * @returns The group if found, null otherwise */ findGroupByName(name: string): Promise; /** * Resolve admin user identifiers (IDs, emails, or usernames) to IDs * @param identifiers - Array of user IDs (as strings), emails, or usernames * @returns Array of resolved user IDs */ resolveAdminUsers(identifiers: string[]): Promise; /** * Resolve site identifiers (IDs or slugs/names) to IDs * @param identifiers - Array of site IDs (as strings), slugs, or names * @returns Array of resolved site IDs */ resolveSites(identifiers: string[]): Promise; /** * Resolve realm identifiers (IDs or slugs) to IDs * @param identifiers - Array of realm IDs (as strings) or slugs * @returns Array of resolved realm IDs */ resolveRealms(identifiers: string[]): Promise; /** * Calculate user array after add/remove operations * @param currentUsers - Current user IDs * @param addUsers - User IDs to add * @param removeUsers - User IDs to remove * @returns New array of user IDs */ syncUserArray(currentUsers: number[], addUsers: number[], removeUsers: number[]): number[]; /** * Calculate array differences for sites/realms * @param current - Current IDs * @param add - IDs to add * @param remove - IDs to remove * @returns New array of IDs */ syncAccessArray(current: number[], add: number[], remove: number[]): number[]; } export {}; //# sourceMappingURL=AdminGroupsRepository.d.ts.map