using Umbraco.Cms.Core.Models.PublishedContent;
namespace Umbraco.Cms.Core.PublishedCache;
public interface IPublishedContentCache : IPublishedCache
{
///
/// Gets content identified by a route.
///
/// A value indicating whether to consider unpublished content.
/// The route
/// A value forcing the HideTopLevelNode setting.
/// the culture
/// The content, or null.
///
///
/// A valid route is either a simple path eg /foo/bar/nil or a root node id and a path, eg
/// 123/foo/bar/nil.
///
///
/// If
///
/// is null then the settings value is used.
///
/// The value of overrides defaults.
///
IPublishedContent? GetByRoute(bool preview, string route, bool? hideTopLevelNode = null, string? culture = null);
///
/// Gets content identified by a route.
///
/// The route
/// A value forcing the HideTopLevelNode setting.
/// The culture
/// The content, or null.
///
///
/// A valid route is either a simple path eg /foo/bar/nil or a root node id and a path, eg
/// 123/foo/bar/nil.
///
///
/// If
///
/// is null then the settings value is used.
///
/// Considers published or unpublished content depending on defaults.
///
IPublishedContent? GetByRoute(string route, bool? hideTopLevelNode = null, string? culture = null);
///
/// Gets the route for a content identified by its unique identifier.
///
/// A value indicating whether to consider unpublished content.
/// The content unique identifier.
/// The culture
/// A special string formatted route path.
///
///
/// The resulting string is a special encoded route string that may contain the domain ID
/// for the current route. If a domain is present the string will be prefixed with the domain ID integer, example:
/// {domainId}/route-path-of-item
///
/// The value of overrides defaults.
///
string? GetRouteById(bool preview, int contentId, string? culture = null);
///
/// Gets the route for a content identified by its unique identifier.
///
/// The content unique identifier.
/// The culture
/// A special string formatted route path.
/// Considers published or unpublished content depending on defaults.
///
/// The resulting string is a special encoded route string that may contain the domain ID
/// for the current route. If a domain is present the string will be prefixed with the domain ID integer, example:
/// {domainId}/route-path-of-item
///
string? GetRouteById(int contentId, string? culture = null);
}