import type { IGroupStore, IStoreGroup } from '../../lib/types/stores/group-store.js';
import type Group from '../../lib/types/group.js';
import type { ICreateGroupUserModel, IGroup, IGroupModel, IGroupProject, IGroupRole, IGroupUser } from '../../lib/types/group.js';
import type { IGroupWithProjectRoles } from '../../lib/types/stores/access-store.js';
export default class FakeGroupStore implements IGroupStore {
    count(): Promise<number>;
    data: IGroup[];
    getAll(): Promise<IGroup[]>;
    delete(id: number): Promise<void>;
    deleteAll(): Promise<void>;
    destroy(): void;
    exists(key: number): Promise<boolean>;
    get(key: number): Promise<IGroup | undefined>;
    create(_group: IStoreGroup): Promise<IGroup>;
    existsWithName(_name: string): Promise<boolean>;
    addUsersToGroup(_id: number, _users: ICreateGroupUserModel[], _userName: string): Promise<void>;
    getAllUsersByGroups(_groupIds: number[]): Promise<IGroupUser[]>;
    deleteUsersFromGroup(_deletableUsers: IGroupUser[]): Promise<void>;
    update(_group: IGroupModel): Promise<IGroup>;
    updateGroupUsers(_groupId: number, _newUsers: ICreateGroupUserModel[], _deletableUsers: IGroupUser[], _userName: string): Promise<void>;
    getAllWithId(_ids: number[]): Promise<IGroup[]>;
    getProjectGroupRoles(_projectId: string): Promise<IGroupRole[]>;
    getProjectGroups(_projectId: string): Promise<IGroupWithProjectRoles[]>;
    getGroupProjects(_groupIds: number[]): Promise<IGroupProject[]>;
    getNewGroupsForExternalUser(_userId: number, _externalGroups: string[]): Promise<IGroup[]>;
    addUserToGroups(_userId: number, _groupIds: number[], _createdBy?: string): Promise<void>;
    getOldGroupsForExternalUser(_userId: number, _externalGroups: string[]): Promise<IGroupUser[]>;
    getGroupsForUser(_userId: number): Promise<Group[]>;
    hasProjectRole(_groupId: number): Promise<boolean>;
    deleteScimGroups(): Promise<void>;
}
//# sourceMappingURL=fake-group-store.d.ts.map