import { Element_ } from '../Class/Element';
import { Graph } from '../Class/Graph';
import { Stateful } from '../Class/Stateful';
import { Unit } from '../Class/Unit';
import { C_EE } from '../types/interface/C';
import { EE } from '../types/interface/EE';
import { ComponentAppendChildMoment } from './ComponentAppendChildMoment';
import { ComponentAppendChildrenMoment } from './ComponentAppendChildrenMoment';
import { ComponentRemoveChildAtMoment } from './ComponentRemoveChildAtMoment';
import { UnitMoment } from './UnitMoment';
import { UnitRenamePinMoment } from './UnitRenamePinMoment';
export declare function watchUnitEvent(event: 'destroy' | 'reset' | 'listen' | 'unlisten' | 'register' | 'unregister' | 'play' | 'pause', unit: Unit, callback: (moment: UnitMoment) => void): () => void;
export declare function watchUnitRenamePinEvent(event: 'rename_input' | 'rename_output', unit: Unit, callback: (moment: UnitRenamePinMoment) => void): () => void;
export declare function watchStatefulSetEvent(event: 'set', unit: Stateful, callback: (moment: any) => void): () => void;
export declare function watchElementCallEvent(event: 'call', unit: Element_, callback: (moment: any) => void): () => void;
export declare function watchComponentAppendEvent(event: 'append_child', unit: EE<{
    append_child: C_EE['append_child'];
}>, callback: (moment: ComponentAppendChildMoment) => void): () => void;
export declare function watchComponentAppendChildrenEvent(event: 'append_children', unit: EE<{
    append_children: C_EE['append_children'];
}>, callback: (moment: ComponentAppendChildrenMoment) => void): () => void;
export declare function watchComponentRemoveEvent(event: 'remove_child', unit: Graph | Element_, callback: (moment: ComponentRemoveChildAtMoment) => void): () => void;
