import { Database } from '@firebase/database'; import { Observable } from 'rxjs'; import { Auth } from '../../media-type/cdm/auth'; import { AuthPermission } from '../../media-type/cdm/auth-permission'; import { AuthPermissionKey } from '../../media-type/doc-model/auth-permission'; import { AuthRoleKey } from '../../media-type/doc-model/auth-role'; import { AuthRole } from '../../media-type/cdm/auth-role'; import { AuthUser } from '../../media-type/cdm/auth-user'; import { FirebaseProvider } from '@tangential/firebase-util'; import { AuthSettings } from '../../media-type/cdm/auth-settings'; import { AuthUserKey } from '../../media-type/doc-model/auth-user'; import { AuthSettingsService } from '../settings-service/settings-service'; import * as i0 from "@angular/core"; export declare abstract class AdminService { protected authSettingsService: AuthSettingsService; protected fb: FirebaseProvider; protected db: Database; constructor(authSettingsService: AuthSettingsService, fb: FirebaseProvider); /** * Use extremely rarely. This loads the entire Auth document, including *all* users. */ abstract auth$(): Observable; abstract addPermission(permission: AuthPermission): Promise; abstract removePermission(key: AuthPermissionKey): Promise; abstract updatePermission(permission: AuthPermission): Promise; abstract addRole(role: AuthRole): Promise; abstract updateRole(role: AuthRole): Promise; abstract removeRole(key: AuthRoleKey): Promise; /** * @todo ggranum: Add Firebase Function to watch for Add Permission on Role action for updating user effective permissions. * @param roleKey * @param permissionKey * @returns {Promise} */ grantPermissionOnRole(roleKey: AuthRoleKey, permissionKey: AuthPermissionKey): Promise; /** * @todo ggranum: Add Firebase Function to watch for revoke Permission on Role action for updating user effective permissions. * @param roleKey * @param permissionKey * @returns {Promise} */ revokePermissionOnRole(roleKey: AuthRoleKey, permissionKey: AuthPermissionKey): Promise; abstract addUser(entity: AuthUser): Promise; abstract updateUser(entity: AuthUser): Promise; abstract removeUser(entityKey: string): Promise; abstract grantPermissionOnUser(user: AuthUser, permission: AuthPermission): Promise; abstract revokePermissionOnUser(user: AuthUser, permission: AuthPermission): Promise; abstract grantRoleOnUser(user: AuthUser, role: AuthRole): Promise; abstract revokeRoleOnUser(key: AuthUserKey, role: AuthRoleKey): Promise; abstract updateSettings(authSettings: AuthSettings): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }