namespace Caliburn.Micro.Core {
    using System;
    /// 
    /// Denotes an instance which conducts other objects by managing an ActiveItem and maintaining a strict lifecycle.
    /// 
    /// Conducted instances can optin to the lifecycle by impelenting any of the follosing , , .
    public interface IConductor : IParent, INotifyPropertyChangedEx {
        /// 
        /// Activates the specified item.
        /// 
        /// The item to activate.
        void ActivateItem(object item);
        /// 
        /// Deactivates the specified item.
        /// 
        /// The item to close.
        /// Indicates whether or not to close the item after deactivating it.
        void DeactivateItem(object item, bool close);
        /// 
        /// Occurs when an activation request is processed.
        /// 
        event EventHandler ActivationProcessed;
    }
    /// 
    /// An  that also implements .
    /// 
    public interface IConductActiveItem : IConductor, IHaveActiveItem { }
}