import type { ManifestoDomainShape } from "@manifesto-ai/sdk"; import type { GovernanceRuntimeKernel } from "@manifesto-ai/sdk/provider"; import type { LineageRuntimeController, LineageService } from "@manifesto-ai/lineage/provider"; import type { AuthorityEvaluator } from "./authority/evaluator.js"; import type { GovernanceConfig } from "./runtime-types.js"; import type { ActorAuthorityBinding, GovernanceEventDispatcher, GovernanceService, GovernanceStore, ProposalId } from "./types.js"; /** * Shared runtime collaborators for the governance activation modules. * * `activateGovernanceRuntime()` builds this once and hands it to the * settlement, submission, recovery, and observation factories so the * extracted closures keep operating on the exact same shared state * (`proposalSubmissionBindings`, `activeSettlementTasks`) and services. */ export interface GovernanceRuntimeDeps { readonly kernel: GovernanceRuntimeKernel; readonly lineage: LineageRuntimeController; readonly lineageService: LineageService; readonly config: GovernanceConfig; readonly governanceService: GovernanceService; readonly governanceStore: GovernanceStore; readonly evaluator: AuthorityEvaluator; readonly eventDispatcher: GovernanceEventDispatcher; readonly getCurrentTimestamp: () => number; readonly ensureReady: () => Promise; readonly proposalSubmissionBindings: Map; readonly activeSettlementTasks: Set; }