namespace Caliburn.Micro.Core {
    using System;
    using System.Collections.Generic;
    /// 
    /// Used to gather the results from multiple child elements which may or may not prevent closing.
    /// 
    /// The type of child element.
    public interface ICloseStrategy {
        /// 
        /// Executes the strategy.
        /// 
        /// Items that are requesting close.
        /// The action to call when all enumeration is complete and the close results are aggregated.
        /// The bool indicates whether close can occur. The enumerable indicates which children should close if the parent cannot.
        void Execute(IEnumerable toClose, Action> callback);
    }
}