import { Interaction } from '@serenity-js/core' ; import { BrowseTheWeb } from '../abilities' ; desc Instructs the  {@link @serenity-js/core/lib/screenplay/actor~Actor} to
 *  enable or disable automated synchronisation between Protractor and Angular.
 *
 *  Useful when a test scenario needs to interact with both Angular-based
 *  and non-Angular web apps (i.e. use an external sign on form).
 *
 *  More examples in [Cross-application testing with Serenity/JS](https://janmolak.com/cross-application-testing-with-serenity-js-4103a272b75b).
 *
 *  **Please note** if your tests interact with a non-Angular app you can disable
 *  synchronisation altogether in [`protractor.conf.js`](https://github.com/angular/protractor/blob/master/lib/config.ts).
 *
 *  example example extends serenity-js export class UseAngular { desc Instructs the  {@link @serenity-js/core/lib/screenplay/actor~Actor} to
     *  disable synchronisation between Protractor and Angular.
     *
     *  returns { serenity-js static disableSynchronisation ( ) { return Interaction . where ( `#actor disables synchronisation with Angular` , actor => BrowseTheWeb . as ( actor ) . enableAngularSynchronisation ( false ) . then ( ( ) => void 0 ) ) ; } desc Instructs the  {@link @serenity-js/core/lib/screenplay/actor~Actor} to
     *  enable synchronisation between Protractor and Angular.
     *
     *  returns { serenity-js static enableSynchronisation ( ) { return Interaction . where ( `#actor enables synchronisation with Angular` , actor => BrowseTheWeb . as ( actor ) . enableAngularSynchronisation ( true ) . then ( ( ) => void 0 ) ) ; } }