using Grand.Infrastructure.Plugins;

namespace Grand.Business.Core.Interfaces.Cms;

/// <summary>
///     Provides an interface for creating widgets
/// </summary>
public interface IWidgetProvider : IProvider
{
    /// <summary>
    ///     Gets widget zones where this widget for rendered
    /// </summary>
    /// <returns>Widget zones</returns>
    Task<IList<string>> GetWidgetZones();

    /// <summary>
    ///     Gets a view component name for displaying in public store
    /// </summary>
    Task<string> GetPublicViewComponentName(string widgetZone);
}