import { BaseService, ValidatedResponse } from '@txstate-mws/graphql-server'; import { type Group, type GroupFilter, GroupResponse, DosGatoService } from '../internal.js'; export declare class GroupServiceInternal extends BaseService { find(filter?: GroupFilter): Promise; findById(id: string): Promise; findByUserId(userId: string, direct?: boolean): Promise; getSubgroups(groupId: string, recursive?: boolean): Promise; getAllSubs(groupIds: string[]): Promise; getSuperGroups(groupId: string, recursive?: boolean): Promise; getAllSupers(groupIds: string[]): Promise; findByRoleId(roleId: string, direct?: boolean, filter?: GroupFilter): Promise; } export declare class GroupService extends DosGatoService { raw: GroupServiceInternal; find(filter?: GroupFilter): Promise; findById(id: string): Promise; findByUserId(userId: string, direct?: boolean): Promise; getSubgroups(groupId: string, recursive?: boolean): Promise; getAllSubs(groupIds: string[]): Promise; getSuperGroups(groupId: string, recursive?: boolean): Promise; getAllSupers(groupIds: string[]): Promise; findByRoleId(roleId: string, direct?: boolean, filter?: GroupFilter): Promise; create(name: string, parentId?: string, validateOnly?: boolean): Promise; update(id: string, name: string, validateOnly?: boolean): Promise; delete(id: string): Promise; addUserToGroups(groupIds: string[], userId: string): Promise; removeUserFromGroup(groupIds: string[], userId: string): Promise; setUserGroups(userId: string, groupIds: string[]): Promise; setGroupUsers(groupId: string, userIds: string[]): Promise; addSubgroup(parentId: string, childId: string): Promise; removeSubgroup(parentId: string, childId: string): Promise; mayView(group: Group): boolean; mayViewManagerUI(): boolean; mayCreate(): boolean; mayUpdate(group: Group): boolean; mayDelete(group: Group): boolean; mayManageUsers(group: Group): boolean; mayManageGroups(group: Group): boolean; }