import { Observable, Subject } from 'rxjs'; import { Command, CommandEvent } from './core'; import * as i0 from "@angular/core"; export declare abstract class CommandBus extends Observable<Command> { abstract dispatch(command: Command): void; static ɵfac: i0.ɵɵFactoryDeclaration<CommandBus, never>; static ɵprov: i0.ɵɵInjectableDeclaration<CommandBus>; } export declare abstract class CommandEventBus extends Observable<CommandEvent> { abstract publish(event: CommandEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration<CommandEventBus, never>; static ɵprov: i0.ɵɵInjectableDeclaration<CommandEventBus>; } export declare class SubjectBasedCommandBus extends Subject<Command> implements CommandBus { dispatch(command: Command): void; static ɵfac: i0.ɵɵFactoryDeclaration<SubjectBasedCommandBus, never>; static ɵprov: i0.ɵɵInjectableDeclaration<SubjectBasedCommandBus>; } export declare class SubjectBasedCommandEventBus extends Subject<CommandEvent> implements CommandEventBus { publish(event: CommandEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration<SubjectBasedCommandEventBus, never>; static ɵprov: i0.ɵɵInjectableDeclaration<SubjectBasedCommandEventBus>; }