import { Cache } from 'txstate-utils'; import { Group, type GroupFilter } from '../internal.js'; declare class HierarchyGroup extends Group { children: HierarchyGroup[]; parents: HierarchyGroup[]; ancestorIds(seen?: Set): Set; descendantIds(seen?: Set): Set; constructor(row: any); } export declare const groupHierarchyCache: Cache, undefined>; export declare function getGroups(filter?: GroupFilter): Promise; export declare function getGroupsWithUser(userIds: string[]): Promise<{ key: any; value: Group; }[]>; export declare function getGroupsWithRole(roleIds: string[], filter?: GroupFilter): Promise<{ key: string; value: Group; }[]>; export declare function groupNameIsUnique(name: string): Promise; export declare function createGroup(name: string, parent?: Group): Promise; export declare function updateGroup(id: string, name: string): Promise; export declare function deleteGroup(id: string): Promise; export declare function addUserToGroups(groupIds: string[], userId: number): Promise; export declare function removeUserFromGroups(groupIds: string[], userId: number): Promise; export declare function setUserGroups(userId: number, groupIds: string[]): Promise; export declare function setGroupUsers(groupId: string, userIds: number[]): Promise; export declare function addSubgroup(parentId: string, childId: string): Promise; export declare function removeSubgroup(parentId: string, childId: string): Promise; export {};