/*-------------------------------------------------------------------------------------------------------------- * Copyright (c) insite-gmbh. All rights reserved. * Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------------------------*/ import { OpaqueToken } from "@angular/core"; import { Subject } from 'rxjs/Subject'; import { AuthAction } from './AuthAction'; export interface IUserAuthStateService { readonly username: string; readonly level: string; login(loginResult: (username: string, level: string, success: boolean) => void): void; logout(): void; checkRequestedLevel(levelRequested: string, loginResult: (username: string, level: string, success: boolean) => void): void; actionRequest(): Subject; } export const IUSERAUTHSTATESERVICE_TOKEN: OpaqueToken = new OpaqueToken('IUserAuthStateService');