import type { IAccessInfo, IAccessStore, IProjectRoleUsage, IRole, IRoleWithProject, IUserPermission, IUserRole, IUserWithProjectRoles } from '../../lib/types/stores/access-store';
import type { IPermission } from '../../lib/types/model';
import { type IRoleStore, type IUserAccessOverview } from '../../lib/types';
import type { PermissionRef } from '../../lib/services/access-service';
export declare class FakeAccessStore implements IAccessStore {
    fakeRolesStore: IRoleStore;
    userToRoleMap: Map<number, number>;
    rolePermissions: Map<number, IPermission[]>;
    constructor(roleStore?: IRoleStore);
    getProjectUserAndGroupCountsForRole(roleId: number): Promise<IProjectRoleUsage[]>;
    getAllProjectRolesForUser(userId: number, project: string): Promise<IRoleWithProject[]>;
    addRoleAccessToProject(users: IAccessInfo[], groups: IAccessInfo[], projectId: string, roleId: number, createdBy: string): Promise<void>;
    addAccessToProject(roles: number[], groups: number[], users: number[], projectId: string, createdBy: string): Promise<void>;
    updateGroupProjectRole(userId: number, roleId: number, projectId: string): Promise<void>;
    addGroupToRole(groupId: number, roleId: number, created_by: string, projectId?: string): Promise<void>;
    removeGroupFromRole(groupId: number, roleId: number, projectId?: string): Promise<void>;
    updateUserProjectRole(userId: number, roleId: number, projectId: string): Promise<void>;
    removeUserFromRole(userId: number, roleId: number, projectId: string): Promise<void>;
    wipePermissionsFromRole(role_id: number): Promise<void>;
    unlinkUserRoles(userId: number): Promise<void>;
    getRoleByName(name: string): Promise<IRole>;
    getProjectUsersForRole(roleId: number, projectId?: string): Promise<IUserRole[]>;
    getProjectUsers(projectId?: string): Promise<IUserWithProjectRoles[]>;
    getProjectRoles(): Promise<IRole[]>;
    addEnvironmentPermissionsToRole(role_id: number, permissions: PermissionRef[]): Promise<void>;
    getAvailablePermissions(): Promise<IPermission[]>;
    getPermissionsForUser(userId: Number): Promise<IUserPermission[]>;
    getPermissionsForRole(roleId: number): Promise<IPermission[]>;
    getRoles(): Promise<IRole[]>;
    getRoleWithId(id: number): Promise<IRole>;
    getRolesForProject(projectId: string): Promise<IRole[]>;
    removeRolesForProject(projectId: string): Promise<void>;
    getRolesForUserId(userId: number): Promise<IRoleWithProject[]>;
    getUserIdsForRole(roleId: number, projectId: string): Promise<number[]>;
    getGroupIdsForRole(roleId: number, projectId?: string): Promise<number[]>;
    addUserToRole(userId: number, roleId: number): Promise<void>;
    addPermissionsToRole(role_id: number, permissions: PermissionRef[], environment?: string): Promise<void>;
    removePermissionFromRole(roleId: number, permission: string, projectId?: string): Promise<void>;
    getRootRoleForAllUsers(): Promise<IUserRole[]>;
    delete(key: number): Promise<void>;
    deleteAll(): Promise<void>;
    destroy(): void;
    exists(key: number): Promise<boolean>;
    get(key: number): Promise<IRole>;
    getAll(): Promise<IRole[]>;
    getRootRoles(): Promise<IRole[]>;
    removeRolesOfTypeForUser(userId: number, roleTypes: string[]): Promise<void>;
    cloneEnvironmentPermissions(sourceEnvironment: string, destinationEnvironment: string): Promise<void>;
    clearUserPersonalAccessTokens(userId: number): Promise<void>;
    unlinkUserGroups(userId: number): Promise<void>;
    clearPublicSignupUserTokens(userId: number): Promise<void>;
    getProjectRolesForGroup(projectId: string, groupId: number): Promise<number[]>;
    getProjectRolesForUser(projectId: string, userId: number): Promise<number[]>;
    setProjectRolesForGroup(projectId: string, groupId: number, roles: number[], createdBy: string): Promise<void>;
    setProjectRolesForUser(projectId: string, userId: number, roles: number[]): Promise<void>;
    removeUserAccess(projectId: string, userId: number): Promise<void>;
    removeGroupAccess(projectId: string, groupId: number): Promise<void>;
    getUserAccessOverview(): Promise<IUserAccessOverview[]>;
    getRootRoleForUser(userId: number): Promise<IRole | undefined>;
}
export default FakeAccessStore;
//# sourceMappingURL=fake-access-store.d.ts.map