import EventEmitter from './EventEmitter' ; import Molecule from './Molecule' ; import Agent from './Agent' ; export type AgentDefinitionMap = { [ key ] : ( molecule : Molecule ) => Agent ; } ; export type ComponentMap = { [ component ] : any ; } ; export type MoleculeOptions = { config ? : any ; registry ? : ComponentMap ; store ? : any ; agents ? : AgentDefinitionMap ; name ? : string ; debug ? : boolean ; } ; export interface IAgent { emit ( key , value ) : void ; on ( event , handler ) : void ; off ( event , handler ) : void ; molecule : Molecule ; emitter : EventEmitter ; preventInit : boolean ; init ( ) : void ; prepare ( ) : void ; clean ( ) : void ; } export type ComponentRegistryBlendOptions = { prefix ? : string ; throwOnCollisions ? : boolean ; } ;