using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using BITKit;
using Cysharp.Threading.Tasks;
using Unity.Mathematics;

namespace Net.Project.B.Item
{
    public interface IManagedItemService
    {
        public IReadOnlyDictionary<int,IRuntimeItem> Items { get; }
        public void AddOrUpdateItem(IRuntimeItem item);
        public UniTask<object> InstanceItem(float3 position, quaternion rotation, IRuntimeItem item);
        public void DisposeItem(IRuntimeItem item);
        public void DisposeWorldObject(IRuntimeItem item);
        public UniTask ReloadAsync();
        public event Action<IRuntimeItem> OnItemAddedOrUpdated;
        public event Action<IRuntimeItem> OnItemDisposed; 
    }
}
