/* * SPDX-License-Identifier: AGPL-3.0-or-later * Copyright (C) 2025 Sergej Görzen * This file is part of OmiLAXR. */ namespace OmiLAXR.Composers { /// /// Interface defining the contract for statement composers in the OmiLAXR analytics pipeline. /// Composers are responsible for transforming tracking behavior events into structured statements /// that can be processed by endpoints and analytics systems. /// public interface IComposer { /// /// Event fired after a statement has been composed and is ready for delivery to endpoints. /// Subscribers (typically endpoints) receive the composer instance and the composed statement. /// event ComposerAction AfterComposed; /// /// Indicates whether this composer operates at a higher abstraction level, /// processing output from other composers rather than raw tracking behavior events. /// Higher composers typically perform aggregation, analysis, or meta-processing. /// bool IsHigherComposer { get; } /// /// Provides author information for statements created by this composer. /// Used for attribution and metadata in the generated statements. /// /// Author details including name and contact information Author GetAuthor(); string GetDataStandardVersion(); /// /// Returns the display name of this composer, typically derived from the class name. /// Used for identification in logs, UI, and debugging scenarios. /// /// Human-readable name of the composer string GetName(); /// /// Returns the functional category that this composer belongs to. /// Used for organizing, filtering, and processing statements by domain area. /// /// The composer group classification ComposerGroup GetGroup(); } }