
using Godot;
using Rokojori;
using System.Collections.Generic;
 
namespace Rokojori
{ 
  public interface UIStylePropertyContainer
  {
    UIStyle GetUIStyleParent();

    UIPosition GetUIPosition();
    UILayout GetUILayout();
    UILineWrap GetUILineWrap();

    Vector2 GetUISize();

    Font GetFont();
    
    UINumber GetUIStyleNumberProperty( UIStyleNumberProperty property );
    UIColor GetUIStyleColorProperty( UIStyleColorProperty property );

    ShaderUIColor[] GetShaderUIColors();
    List<ActiveStyleTransition<UIColor,ColorPropertyName>> GetActiveShaderUIColorTransitions();
    
    ShaderUINumber[] GetShaderUINumbers();
    List<ActiveStyleTransition<UINumber,FloatPropertyName>> GetActiveShaderUINumberTransitions();

    TransitionSettingsAll GetTransitionSettingsAll();
    UINumberTransition[] GetNumberTransitions();
    List<ActiveStyleTransition<UINumber,UIStyleNumberProperty>> GetActiveUINumberTransitions();

    UIColorTransition[] GetColorTransitions();
    List<ActiveStyleTransition<UIColor,UIStyleColorProperty>> GetActiveUIColorTransitions();
  }
}