using System;
using System.Collections.Generic;
using Umbraco.Web.PublishedCache;
namespace Umbraco.Web.Routing
{
///
/// Provides urls.
///
public interface IUrlProvider
{
///
/// Gets the nice url of a published content.
///
/// The Umbraco context.
/// The published content id.
/// The current absolute url.
/// The url mode.
/// The url for the published content.
///
/// The url is absolute or relative depending on mode and on current.
/// If the provider is unable to provide a url, it should return null.
///
string GetUrl(UmbracoContext umbracoContext, int id, Uri current, UrlProviderMode mode);
///
/// Gets the other urls of a published content.
///
/// The Umbraco context.
/// The published content id.
/// The current absolute url.
/// The other urls for the published content.
///
/// Other urls are those that GetUrl would not return in the current context, but would be valid
/// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
///
IEnumerable GetOtherUrls(UmbracoContext umbracoContext, int id, Uri current);
}
}