namespace Caliburn.Micro.Core {
    using System;
    /// 
    /// Allows custom code to execute after the return of a action.
    /// 
    public interface IResult {
        /// 
        /// Executes the result using the specified context.
        /// 
        /// The context.
        void Execute(CoroutineExecutionContext context);
        /// 
        /// Occurs when execution has completed.
        /// 
        event EventHandler Completed;
    }
    /// 
    /// Allows custom code to execute after the return of a action.
    /// 
    /// The type of the result.
    public interface IResult : IResult
    {
        /// 
        /// Gets the result of the asynchronous operation.
        /// 
        TResult Result { get; }
    }
}