using System;
using Godot;
namespace GodotHostTest.GodotDI;
public interface ISceneInstantiator
{
///
/// Instantiate a packed scene, just like , but also looks for a scope between the top level children of the instantiated scene and triggers the dependency injection mechanism when found.
///
/// The packed scene to instantiate.
/// An optional callback invoked once the scope has been created, but before instantiating the scene.
/// The created node, with its dependencies satisfied.
Node Instantiate(PackedScene packedScene, Delegate? onScopeCreated = null);
///
/// Instantiate a packed scene, just like , but also looks for a scope between the top level children and triggers the dependency injection mechanism when found.
///
/// The packed scene to instantiate.
/// An optional callback invoked once the scope has been created, but before instantiating the scene.
/// The created node, with its dependencies satisfied.
T Instantiate(PackedScene packedScene, Delegate? onScopeCreated = null) where T : Node;
}