import {bind} from 'angular2/di'; import {Promise} from 'angular2/src/facade/async'; import {BaseException, ABSTRACT} from 'angular2/src/facade/lang'; import {List, Map} from 'angular2/src/facade/collection'; /** * A WebDriverAdapter bridges API differences between different WebDriver clients, * e.g. JS vs Dart Async vs Dart Sync webdriver. * Needs one implementation for every supported WebDriver client. */ @ABSTRACT() export class WebDriverAdapter { static bindTo(delegateToken) { return [bind(WebDriverAdapter).toFactory((delegate) => delegate, [delegateToken])]; } waitFor(callback: Function): Promise { throw new BaseException('NYI'); } executeScript(script: string): Promise { throw new BaseException('NYI'); } capabilities(): Promise> { throw new BaseException('NYI'); } logs(type: string): Promise> { throw new BaseException('NYI'); } }