using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using Data.Models; namespace SharedLibraryCore.Interfaces; public interface IInteractionRegistration { void RegisterScriptInteraction(string interactionName, string source, Delegate interactionRegistration); void RegisterInteraction(string interactionName, Func> interactionRegistration); void UnregisterInteraction(string interactionName); Task> GetInteractions(string interactionPrefix = null, int? clientId = null, Reference.Game? game = null, CancellationToken token = default); Task ProcessInteraction(string interactionId, int originId, int? targetId = null, Reference.Game? game = null, IDictionary meta = null, CancellationToken token = default); }