using System;
using System.Collections.Generic;
using System.Data;
using System.Threading;
using System.Threading.Tasks;
namespace Xamarin.PropertyEditing
{
public interface IResourceProvider
{
///
/// Gets whether or not the resource provider can create resources.
///
bool CanCreateResources { get; }
///
/// Gets the resources available to the given and .
///
/// or is null.
///
///
/// Returned resources can either be of base class or, whenever possible, of
/// including their relative representative value. This mean things like dynamic resources should, if possible, do a lookup
/// of its value relative to the and provide that value.
///
///
Task> GetResourcesAsync (object target, IPropertyInfo property, CancellationToken cancelToken);
///
/// Gets resource sources relative to the provided .
///
Task> GetResourceSourcesAsync (object target);
///
/// Gets resource sources relative to the provided and .
///
Task> GetResourceSourcesAsync (object target, IPropertyInfo property);
///
/// Gets an unused type-appropriate resource key for a value of the being turned into a resource.
///
Task SuggestResourceNameAsync (IReadOnlyCollection