import type { LifecycleHook, TriggerManifest } from "@aotter/mantle-spec"; import type { LifecycleHookPlan, RuntimeTriggerPlan } from "./RuntimePlanCompiler.js"; /** * Pre-built `(schema, hook) → Trigger[]` index for the lifecycle hook * runner. Built once at boot from the parsed manifest set; the * `LifecycleHookingEntryRepository` decorator queries it on every * mutation. * * Within a `(schema, hook)` group, Triggers fire in **alphabetical * order by `Trigger.metadata.name`**. Authors choose names that sort * correctly (`010-bot-check`, `020-rate-limit`). * * Pure data-structure — no I/O, no manifest validation. Lives in * `domain/service/`. */ export declare class TriggerIndex { private readonly bySchemaAndHook; constructor(triggers: readonly TriggerManifest[]); /** Runtime acceleration over the compiler-owned value index. */ static fromPlan(groups: readonly LifecycleHookPlan[], triggers: Readonly>): TriggerIndex; /** Triggers bound to (schema, hook), in firing order. Empty array * when nothing matches — callers don't need a null check. */ forHook(schema: string, hook: LifecycleHook): readonly TriggerManifest[]; } //# sourceMappingURL=TriggerIndex.d.ts.map