using System;
using System.Collections;
namespace Umbraco.Cms.Core.Models.PublishedContent
{
///
/// Provides the published model creation service.
///
public interface IPublishedModelFactory
{
///
/// Creates a strongly-typed model representing a published element.
///
/// The original published element.
/// The strongly-typed model representing the published element, or the published element
/// itself it the factory has no model for the corresponding element type.
IPublishedElement CreateModel(IPublishedElement element);
///
/// Creates a List{T} of a strongly-typed model for a model type alias.
///
/// The model type alias.
/// A List{T} of the strongly-typed model, exposed as an IList.
IList? CreateModelList(string alias);
///
/// Maps a CLR type that may contain model types, to an actual CLR type.
///
/// The CLR type.
/// The actual CLR type.
/// See for more details.
Type MapModelType(Type type);
}
}