namespace Umbraco.Cms.Core.Mapping;
public interface IUmbracoMapper
{
///
/// Defines a mapping.
///
/// The source type.
/// The target type.
void Define();
///
/// Defines a mapping.
///
/// The source type.
/// The target type.
/// A mapping method.
void Define(Action map);
///
/// Defines a mapping.
///
/// The source type.
/// The target type.
/// A constructor method.
void Define(Func ctor);
///
/// Defines a mapping.
///
/// The source type.
/// The target type.
/// A constructor method. Will not be used if the mapping call receives a Target object
/// A mapping method.
void Define(
Func ctor,
Action map);
///
/// Maps a source object to a new target object.
///
/// The target type.
/// The source object.
/// The target object.
TTarget? Map(object? source);
///
/// Maps a source object to a new target object.
///
/// The target type.
/// The source object.
/// A mapper context preparation method.
/// The target object.
TTarget? Map(object? source, Action f);
///
/// Maps a source object to a new target object.
///
/// The target type.
/// The source object.
/// A mapper context.
/// The target object.
TTarget? Map(object? source, MapperContext context);
///
/// Maps a source object to a new target object.
///
/// The source type.
/// The target type.
/// The source object.
/// The target object.
TTarget? Map(TSource? source);
///
/// Maps a source object to a new target object.
///
/// The source type.
/// The target type.
/// The source object.
/// A mapper context preparation method.
/// The target object.
TTarget? Map(TSource source, Action f);
///
/// Maps a source object to a new target object.
///
/// The source type.
/// The target type.
/// The source object.
/// A mapper context.
/// The target object.
TTarget? Map(TSource? source, MapperContext context);
///
/// Maps a source object to an existing target object.
///
/// The source type.
/// The target type.
/// The source object.
/// The target object.
/// The target object.
TTarget Map(TSource source, TTarget target);
///
/// Maps a source object to an existing target object.
///
/// The source type.
/// The target type.
/// The source object.
/// The target object.
/// A mapper context preparation method.
/// The target object.
TTarget Map(TSource source, TTarget target, Action f);
///
/// Maps a source object to an existing target object.
///
/// The source type.
/// The target type.
/// The source object.
/// The target object.
/// A mapper context.
/// The target object.
TTarget Map(TSource source, TTarget target, MapperContext context);
///
/// Maps an enumerable of source objects to a new list of target objects.
///
/// The type of the source objects.
/// The type of the target objects.
/// The source objects.
/// A list containing the target objects.
List MapEnumerable(IEnumerable source);
///
/// Maps an enumerable of source objects to a new list of target objects.
///
/// The type of the source objects.
/// The type of the target objects.
/// The source objects.
/// A mapper context preparation method.
/// A list containing the target objects.
List MapEnumerable(
IEnumerable source,
Action f);
///
/// Maps an enumerable of source objects to a new list of target objects.
///
/// The type of the source objects.
/// The type of the target objects.
/// The source objects.
/// A mapper context.
/// A list containing the target objects.
List MapEnumerable(
IEnumerable source,
MapperContext context);
}