using RealTimeGraphX.EventArguments;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RealTimeGraphX
{
///
/// Represents a graph component which passes data to some other type of component.
///
/// The type of the out.
///
public interface IGraphOutputComponent : IGraphComponent where TOut : IGraphComponent
{
///
/// Occurs when the property has changed.
///
event EventHandler> OutputChanged;
///
/// Gets the connected output .
///
TOut Output { get; }
///
/// Connects this component to another .
///
/// The output component.
/// Specifies whether this call was made from a component.
void ConnectOutput(TOut output, bool fromOutput = false);
///
/// Disconnects this component from the connected .
///
/// Specifies whether this call was made from a component.
void DisconnectOutput(bool fromOutput = false);
}
}