import { type CanonicalSnapshot, type DispatchExecutionOutcome, type ManifestoDomainShape } from "@manifesto-ai/sdk"; import type { WaitForProposalRuntimeKernel } from "@manifesto-ai/sdk/provider"; import type { GovernanceInstance } from "./runtime-types.js"; import type { ErrorInfo, Proposal, ProposalId, WorldId } from "./types.js"; type WaitForProposalRuntimeState = WaitForProposalRuntimeKernel; export type WaitForProposalOptions = { readonly timeoutMs?: number; readonly pollIntervalMs?: number; }; export type ProposalSettlement = { readonly kind: "completed"; readonly proposal: Proposal & { readonly status: "completed"; readonly resultWorld: WorldId; }; readonly snapshot: CanonicalSnapshot; readonly resultWorld: WorldId; } | { readonly kind: "failed"; readonly proposal: Proposal & { readonly status: "failed"; }; readonly resultWorld?: WorldId; readonly error: ErrorInfo; } | { readonly kind: "rejected"; readonly proposal: Proposal & { readonly status: "rejected"; }; } | { readonly kind: "superseded"; readonly proposal: Proposal & { readonly status: "superseded"; }; } | { readonly kind: "pending"; readonly proposal: Proposal; } | { readonly kind: "timed_out"; readonly proposal: Proposal; }; export type ProposalSettlementReport = { readonly kind: "completed"; readonly proposal: Proposal & { readonly status: "completed"; readonly resultWorld: WorldId; }; readonly baseWorld: WorldId; readonly resultWorld: WorldId; readonly outcome: DispatchExecutionOutcome; } | { readonly kind: "failed"; readonly proposal: Proposal & { readonly status: "failed"; }; readonly baseWorld: WorldId; readonly published: false; readonly error: ErrorInfo; readonly resultWorld?: WorldId; readonly sealedOutcome?: DispatchExecutionOutcome; } | { readonly kind: "rejected"; readonly proposal: Proposal & { readonly status: "rejected"; }; } | { readonly kind: "superseded"; readonly proposal: Proposal & { readonly status: "superseded"; }; } | { readonly kind: "pending"; readonly proposal: Proposal; } | { readonly kind: "timed_out"; readonly proposal: Proposal; }; export declare function attachWaitForProposalRuntime(runtime: GovernanceInstance, state: WaitForProposalRuntimeState): GovernanceInstance; export declare function waitForProposal(app: GovernanceInstance, proposalOrId: Proposal | ProposalId, options?: WaitForProposalOptions): Promise>; export declare function waitForProposalWithReport(app: GovernanceInstance, proposalOrId: Proposal | ProposalId, options?: WaitForProposalOptions): Promise>; export {};