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 can receive data from another type of component.
///
/// The type of the in.
///
public interface IGraphInputComponent : IGraphComponent where TIn : IGraphComponent
{
///
/// Occurs when the property has changed.
///
event EventHandler> InputChanged;
///
/// Gets the connected input .
///
TIn Input { get; }
///
/// Connects the specified component output to this component input.
///
/// The component.
/// Specifies whether this call was made from a component.
void ConnectInput(TIn component, bool fromInput = false);
///
/// Disconnects this component input from the current connected .
///
/// Specifies whether this call was made from a component.
void DisconnectInput(bool fromInput = false);
}
}