import { Observable, Subject } from 'rxjs'; import { AjaxError, AjaxRequest } from 'rxjs/ajax'; import { CimStreamOptions, CimStreamResponse } from '../data/cim-stream'; import { HttpStatusCode } from '../data/http-constants'; import { PowerShellStreamResponse } from '../data/powershell-stream'; /** * Defines an signed http request token */ export interface SignedHttpRequestToken { /** * JSON Web Token (string). */ jwt: string; /** * User name. */ username: string; } export interface SignOnTokenResponse { /** * The time aquired. */ time: number; /** * The signed http request token. */ token: SignedHttpRequestToken; } export interface SignOnTokenRefresh { /** * The time aquired. */ time: number; } /** * Manage Signed HTTP Request token (Proof of possession token) handling. */ export declare class SignOnManager { /** * Wait for one minute to respond by the portal. */ private portalMaxWaitTimeout; /** * The PoP Authorization Token. */ signedHttpRequestToken: SignedHttpRequestToken; /** * The sign on token awaiter subject. */ signOnTokenAwaiter: Subject; /** * The sign on token requester subject. */ private signOnTokenRefresh; /** * The refresh request to the authorization manager. */ private refreshCall; /** * Initializes a new instance of the SignOnManager class. */ constructor(refreshCall: () => Observable); /** * Gets a valude indicating whethere sign on token is active and configured. */ get isSignOnTokenEnabled(): boolean; /** * Gets the sign on token request observable by Shell. */ get signOnTokenRefreshTarget(): Observable; /** * Apply signed http request token. */ applySignedHttpRequestToken(token: SignedHttpRequestToken): void; /** * Request sign on token to refresh. * @returns success void. */ requestSignOnRefresh(): Observable; /** * Check if it can handle unauthorized login case. * @param code the error code. * @param error the ajax error response. * @returns true if it can handle. */ canHandleUnauthorizedLogin(code: HttpStatusCode, error: AjaxError): boolean; /** * Handles the unauthorized login case. * @param code the error code. * @param request the ajax request. * @param error the ajex error reponse. * @returns success if it could handled. */ handleUnauthorizedLogin(code: HttpStatusCode, request: AjaxRequest, error: AjaxError): Observable; /** * Check if it can handle unauthorized login case. * @param response the response of CIM stream query. */ canHandleStreamUnauthorizedLogin(response: CimStreamResponse): boolean; /** * Handle returns true for an ajax error, this method can be called to handle that error. */ handleStreamUnauthorizedLogin(options: CimStreamOptions, response: CimStreamResponse | PowerShellStreamResponse): Observable; /** * Set AAD authorization header. * @param headers the headers. */ SetAadAuthorizationHeader(headers?: any): void; }