using System;

namespace Avalonia.Markup.Xaml
{
    public interface IProvideValueTarget
    {
        object TargetObject { get; }
        object TargetProperty { get; }
    }
    
    public interface IRootObjectProvider
    {
        /// <summary>
        /// The root object of the xaml file
        /// </summary>
        object RootObject { get; }
        /// <summary>
        /// The "current" root object, contains either the root of the xaml file
        /// or the root object of the control/data template 
        /// </summary>
        object IntermediateRootObject { get; }
    }
    
    public interface IUriContext
    {
        Uri BaseUri { get; set; }
    }
    
    public interface IXamlTypeResolver
    {
        Type Resolve (string qualifiedTypeName);
    }

    
    public class ConstructorArgumentAttribute : Attribute
    {
        public ConstructorArgumentAttribute(string name)
        {
            
        }
    }
}
