using System.Collections.Generic;
using System.Threading;
using Cysharp.Threading.Tasks;
using Darkmatter.Core.Contracts.Features.DrawingCatalog;

namespace Darkmatter.Core.Contracts.Features.ShapeBuilder;

public interface IShapeBuilderController
{
    UniTask InitializeAsync(CancellationToken ct);

    UniTask BuildAsync(IDrawingTemplate template,
        IReadOnlyCollection<string> preSnappedIds, CancellationToken ct);

    IReadOnlyCollection<string> GetSnappedPieceIds();
    void Clear();
}