import { TokenStore } from './sdk/token' ; import { EvaluatorFacade } from './sdk/evaluation' ; import { TrackerFacade } from './sdk/tracking' ; import { Tab , Logger , SdkEventManager , SessionFacade , UserFacade , CidAssigner } from './sdk' ; export interface PluginSdk { readonly version : string ; readonly appId : string ; readonly tracker : TrackerFacade ; readonly evaluator : EvaluatorFacade ; readonly user : UserFacade ; readonly session : SessionFacade ; readonly tab : Tab ; readonly tokenStore : TokenStore ; readonly cidAssigner : CidAssigner ; readonly eventManager : SdkEventManager ; getLogger ( ... namespace ) : Logger ; getTabStorage ( ... namespace ) : Storage ; getBrowserStorage ( ... namespace ) : Storage ; } export interface PluginArguments < T = any > { options : T ; sdk : PluginSdk ; } export interface PluginFactory < T = any > { ( args ) : Plugin ; } export interface Plugin { enable ( ) : Promise < void > | void ; disable ? ( ) : Promise < void > | void ; }