namespace Caliburn.Micro.Core {
    using System;
    /// 
    /// Denotes an instance which requires deactivation.
    /// 
    public interface IDeactivate {
        /// 
        /// Raised before deactivation.
        /// 
        event EventHandler AttemptingDeactivation;
        /// 
        /// Deactivates this instance.
        /// 
        /// Indicates whether or not this instance is being closed.
        void Deactivate(bool close);
        /// 
        /// Raised after deactivation.
        /// 
        event EventHandler Deactivated;
    }
}