import EventEmitter from 'eventemitter3'; export interface AccessTokenProvider extends EventEmitter { login(): Promise; getToken(): string; stopRefresh(): void; } export declare enum TokenProviderEvent { AuthenticationFailed = "AuthFailed", AuthenticationSucceeded = "AuthOk", Reconnecting = "Reconnecting", RefreshFailed = "RefreshFailed", RefreshSucceeded = "RefreshOk", TokenExpired = "TokenExpired" } export interface TokenProviderEvents { [TokenProviderEvent.AuthenticationSucceeded]: (token: string) => void; [TokenProviderEvent.AuthenticationFailed]: (error: Error) => void; [TokenProviderEvent.Reconnecting]: (message: string) => void; [TokenProviderEvent.RefreshSucceeded]: (token: string) => void; [TokenProviderEvent.RefreshFailed]: (error: Error) => void; [TokenProviderEvent.TokenExpired]: (error: Error) => void; }