import { AuthenticationProvider } from '@microsoft/microsoft-graph-client/lib/es/IAuthenticationProvider'; import { AuthenticationProviderOptions } from '@microsoft/microsoft-graph-client/lib/es/IAuthenticationProviderOptions'; import { Graph } from '../Graph'; export declare abstract class IProvider implements AuthenticationProvider { private _state; private _loginChangedDispatcher; readonly state: ProviderState; setState(state: ProviderState): void; onStateChanged(eventHandler: EventHandler): void; removeStateChangedHandler(eventHandler: EventHandler): void; constructor(); login?(): Promise; logout?(): Promise; getAccessTokenForScopes(...scopes: string[]): Promise; abstract getAccessToken(options?: AuthenticationProviderOptions): Promise; graph: Graph; } export declare type EventHandler = (event: E) => void; export interface LoginChangedEvent { } export declare class EventDispatcher { private eventHandlers; fire(event: E): void; add(eventHandler: EventHandler): void; remove(eventHandler: EventHandler): void; } export declare enum LoginType { Popup = 0, Redirect = 1 } export declare enum ProviderState { Loading = 0, SignedOut = 1, SignedIn = 2 }