/** * Late-stage plugin-state finalization shared by `buildSessionRuntime`, * `loadHarness`, and the CLI `list` path. Centralizes the * `dropUnusedObservers` + breadcrumb pass so all three stay byte-equal * in their breadcrumb output and observer-drop semantics. * * Drops observers whose declared `writes` are unconsumed across both * plugin-merged and user-authored streams, using the union of all * rule `happened` references. Emits an `info`-level breadcrumb per * dropped observer so plugin authors debugging "why isn't my * observer firing?" have a trail to follow without it bubbling up as * a diagnostic the user has to action. * * Callers must pre-filter `config.disabledRules` out of `userRules` * — see {@link dropUnusedObservers}'s contract. */ import type { Observer, Rule } from "../schema.ts"; export declare function finalizePluginState(userRules: readonly Rule[], pluginRules: readonly Rule[], userObservers: readonly Observer[], pluginObservers: readonly Observer[]): { pluginKept: readonly Observer[]; userKept: readonly Observer[]; }; //# sourceMappingURL=finalize-plugin-state.d.ts.map