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;
}
}