using System;
using Betfair.Gamex.API.Entities;

namespace Betfair.Gamex.API.UberClient.Classes
{
	public delegate void ShowBetPlaceHandler(Bet bet);
	public delegate void ClearBetsHandler();
	public delegate void CancelBetHandler(Bet bet);

	/// <summary>
	/// Implemented by game views
	/// </summary>
	public interface IGameControl
	{
        event ShowBetPlaceHandler ShowBetPlacement;
		event ClearBetsHandler ClearBets;
		channelSnapshot CurrentChannelSnapshot { get; set; }
	}

    /// <summary>
    /// Implemented by odds panels
    /// </summary>
	public interface IOddsPanel
	{
		double Price { get; set; }
		double Available { get; set; }
		bool Enabled {get; set; }
        bool Eliminated { get; set; }
        int MarketID { get; set; }
		void Clear();
	}

    /// <summary>
    /// Implemented by bet panels
    /// </summary>
	public interface IBetPanel
	{
		event CancelBetHandler CancelBet;
		Bet bet { get; set; }
	}
}
