export { VSExtensionContext as ExtensionContext } ; export { VSMemento as Memento } ; let dataStore = { } ; export { dataStore } ; interface VSExtensionContext { readonly subscriptions : { dispose ( ) : any ; } [ ] ; readonly workspaceState : VSMemento ; readonly globalState : VSMemento ; readonly extensionPath : string ; asAbsolutePath ( relativePath ) : string ; readonly storagePath : string | undefined ; readonly globalStoragePath : string ; readonly logPath : string ; } interface VSMemento { get < T > ( key ) : T | undefined ; get < T > ( key , defaultValue ) : T ; update ( key , value ) : Thenable < void > ; } export class MemImpl implements VSMemento { public update ( key , value ) { return new Promise ( function ( resolve , reject ) { dataStore [ key ] = value ; resolve ( ) ; } ) ; } public get < T > ( key ) { return < T > dataStore [ key ] ; } constructor ( ) { } } export class ExtImpl implements VSExtensionContext { constructor ( public subscriptions , public workspaceState , public globalState , public extensionPath , public storagePath , public globalStoragePath , public logPath ) { } asAbsolutePath ( relativePath ) { return "test" ; } } ;