import { DeleteValue, ReadValue } from '@dasch-swiss/dsp-js'; import { Subscription } from 'rxjs'; /** * https://stackoverflow.com/questions/56290722/how-pass-a-event-from-deep-nested-child-to-parent-in-angular-2 * This service is used as a way to enable components to communicate with each other no matter how nested they are. * This is intended to provide a cleaner way to emit events from nested components than chaining '@Outputs'. * The ValueOperationEventService essentially creates a direct communication channel between * the emitting component and the listening component. */ export declare class ValueOperationEventService { private _subject$; on(event: Events, action: (value: EventValue) => void): Subscription; emit(event: EmitEvent): void; } export declare class EmitEvent { name: Events; value?: EventValue; constructor(name: Events, value?: EventValue); } export declare enum Events { ValueAdded = 0, ValueDeleted = 1, ValueUpdated = 2 } export declare abstract class EventValue { } export declare class AddedEventValue extends EventValue { addedValue: ReadValue; constructor(addedValue: ReadValue); } export declare class UpdatedEventValues extends EventValue { currentValue: ReadValue; updatedValue: ReadValue; constructor(currentValue: ReadValue, updatedValue: ReadValue); } export declare class DeletedEventValue extends EventValue { deletedValue: DeleteValue; constructor(deletedValue: DeleteValue); }