// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System.Collections.Generic;

namespace Microsoft.AspNetCore.Razor.Language
{
	// Razor.Language doesn't reference Microsoft.CodeAnalysis.CSharp so we
	// need some indirection.
	internal abstract class TypeNameFeature : RazorEngineFeatureBase
	{
		public abstract IReadOnlyList<string> ParseTypeParameters( string typeName );

		public abstract TypeNameRewriter CreateGenericTypeRewriter( Dictionary<string, string> bindings );

		public abstract TypeNameRewriter CreateGlobalQualifiedTypeNameRewriter( ICollection<string> ignore );

		public abstract bool IsLambda( string expression );
	}
}
