export interface IEndpointDefinition { base?: string; login?: string; loginAsUser?: string; tokenExchange?: string; refresh?: string; } export interface ICookieConfig { enabled: boolean; name?: string; topLevelDomain?: boolean; } export interface INgJwtAuthServiceConfig { tokenLocation?: string; tokenUser?: string; apiEndpoints?: IEndpointDefinition; storageKeyName?: string; refreshBeforeSeconds?: number; checkExpiryEverySeconds?: number; cookie?: ICookieConfig; } export interface IJwtClaims { iss: string; aud: string; sub: string; nbf?: number; iat: number; exp: number; jti: string; } export interface IJwtToken { header: { alg: string; typ: string; }; data: IJwtClaims; signature: string; } export interface IUser { userId: any; email: string; firstName?: string; lastName?: string; } export interface ICredentials { username: string; password: string; } export interface ILoginPromptFactory { (deferredCredentials: ng.IDeferred, loginSuccessPromise: ng.IPromise, currentUser: IUser): ng.IPromise; } export interface IUserFactory { (subClaim: string, tokenData: IJwtClaims): ng.IPromise; } export interface IUserEventListener { (user: IUser): void; } export interface IBase64Service { encode(string: string): string; decode(string: string): string; urldecode(string: string): string; urldecode(string: string): string; }