/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ export type Parameters = F extends (...args: infer T) => any ? T : never; export abstract class MessageBus { abstract on(topic: E, cb: T[E]): void; abstract once(topic: E, cb: T[E]): void; abstract emit(topic: E, args?: Parameters): boolean; abstract destroy(): void; }