import { Http, Request, RequestOptions, RequestOptionsArgs, Response } from "@angular/http"; import { Provider, ModuleWithProviders } from "@angular/core"; import { Observable } from "rxjs/Observable"; import "rxjs/add/observable/fromPromise"; import "rxjs/add/observable/defer"; import "rxjs/add/operator/mergeMap"; export interface IAuthConfig { globalHeaders: Array; headerName: string; headerPrefix: string; noJwtError: boolean; noClientCheck: boolean; noTokenScheme?: boolean; tokenGetter: () => string | Promise; tokenName: string; } export interface IAuthConfigOptional { headerName?: string; headerPrefix?: string; tokenName?: string; tokenGetter?: () => string | Promise; noJwtError?: boolean; noClientCheck?: boolean; globalHeaders?: Array; noTokenScheme?: boolean; } export declare class AuthConfigConsts { static DEFAULT_TOKEN_NAME: string; static DEFAULT_HEADER_NAME: string; static HEADER_PREFIX_BEARER: string; } /** * Sets up the authentication configuration. */ export declare class AuthConfig { private _config; constructor(config?: IAuthConfigOptional); getConfig(): IAuthConfig; } export declare class AuthHttpError extends Error { } /** * Allows for explicit authenticated HTTP requests. */ export declare class AuthHttp { private http; private defOpts; private config; tokenStream: Observable; constructor(options: AuthConfig, http: Http, defOpts?: RequestOptions); private mergeOptions(providedOpts, defaultOpts?); private requestHelper(requestArgs, additionalOptions?); requestWithToken(req: Request, token: string): Observable; setGlobalHeaders(headers: Array, request: Request | RequestOptionsArgs): void; request(url: string | Request, options?: RequestOptionsArgs): Observable; get(url: string, options?: RequestOptionsArgs): Observable; post(url: string, body: any, options?: RequestOptionsArgs): Observable; put(url: string, body: any, options?: RequestOptionsArgs): Observable; delete(url: string, options?: RequestOptionsArgs): Observable; patch(url: string, body: any, options?: RequestOptionsArgs): Observable; head(url: string, options?: RequestOptionsArgs): Observable; options(url: string, options?: RequestOptionsArgs): Observable; } /** * Helper class to decode and find JWT expiration. */ export declare class JwtHelper { urlBase64Decode(str: string): string; private b64decode(str); private b64DecodeUnicode(str); decodeToken(token: string): any; getTokenExpirationDate(token: string): Date; isTokenExpired(token: string, offsetSeconds?: number): boolean; } /** * Checks for presence of token and that token hasn't expired. * For use with the @CanActivate router decorator and NgIf */ export declare function tokenNotExpired(tokenName?: string, jwt?: string): boolean; export declare const AUTH_PROVIDERS: Provider[]; export declare function provideAuth(config?: IAuthConfigOptional): Provider[]; /** * Module for angular2-jwt * @experimental */ export declare class AuthModule { constructor(parentModule: AuthModule); static forRoot(config: AuthConfig): ModuleWithProviders; }