using UnityEngine; namespace FlappyBird.Core { public interface IObjectPoolManager { /// /// Registers a new prefab type with the pooling system. /// /// The component type that implements IPoolable. /// The GameObject prefab to instantiate. /// How many instances to pre-warm in the pool. void RegisterPool(GameObject prefab, int initialSize = 0) where T : Component, IPoolable; /// /// Retrieves an instance from the pool, or creates a new one if the pool is empty. /// T Get() where T : Component, IPoolable; /// /// Returns an instance to the pool and deactivates it. /// void Return(T item) where T : Component, IPoolable; } }