﻿using System.Threading;
using System.Threading.Tasks;

namespace Manatee.Trello
{
	/// <summary>
	/// A collection of lists.
	/// </summary>
	public interface IListCollection : IReadOnlyListCollection
	{
		/// <summary>
		/// Creates a new list.
		/// </summary>
		/// <param name="name">The name of the list to add.</param>
		/// <param name="position">(Optional) The position of the list.</param>
		/// <param name="ct">(Optional) A cancellation token for async processing.</param>
		/// <returns>The <see cref="IList"/> generated by Trello.</returns>
		Task<IList> Add(string name, Position position = null, CancellationToken ct = default);
	}
}