export interface IFBLoginRes { accessToken: string; isCancel: boolean; status?: string; reason?: string; } export abstract class FacebookImpl { private _isInitialized = false; public get isInitialized() { return this._isInitialized; } abstract init(); protected onInited() { this._isInitialized = true; } async login(): Promise { const res = await this.onLogin(); return res; } protected abstract onLogin(): Promise; abstract logOut(): Promise; }