/** * Group IPEX workflow orchestration. * * This module owns multisig coordination around embedded `/ipex/*` messages. * CLI adapters supply parsed options and output/file handling; this service * signs, publishes, waits, and sends completed group IPEX messages. */ import { type Operation } from "effection"; import { SerderKERI, type Versionage } from "../../../cesr/mod.js"; import { type AgentRuntime } from "./agent-runtime.js"; import type { Hab, Habery } from "./habbing.js"; export type IpexDeliveryPreference = "auto" | "direct" | "indirect"; export interface MultisigIpexApprovalOptions { publish?: boolean; delivery?: IpexDeliveryPreference; sendLead?: boolean; gvrsn?: Versionage; } export interface MultisigIpexApprovalResult { accepted: boolean; deliveries: string[]; approved: Uint8Array; } export interface PendingMultisigIpexOptions { hab?: Hab; pollTurns: number; pollBudgetMs: number; } /** Approve one pending multisig wrapper around an embedded IPEX message. */ export declare function approveMultisigIpex(hby: Habery, runtime: AgentRuntime, wrapper: SerderKERI, embedded: SerderKERI, options?: MultisigIpexApprovalOptions): Operation; /** Build the locally signed group IPEX partial stream. */ export declare function groupIpexPartial(hby: Habery, groupHab: Hab, embedded: SerderKERI, wrapperSaid?: string, attachments?: Uint8Array): Uint8Array; /** Publish one group IPEX proposal to remote signing members. */ export declare function publishGroupIpexProposal(runtime: AgentRuntime, groupHab: Hab, embedded: Uint8Array, delivery?: IpexDeliveryPreference): Operation; /** Wait for a group IPEX message to become complete while approving stored wrappers. */ export declare function waitForMultisigIpexCompletion(hby: Habery, runtime: AgentRuntime, groupHab: Hab, embeddedSaid: string, approvalTimeoutSeconds: number): Operation; /** Approve all stored multisig wrappers for one embedded IPEX SAID. */ export declare function approveStoredMultisigIpexWrappers(hby: Habery, runtime: AgentRuntime, embeddedSaid: string): Operation; /** Poll for the next stored pending multisig IPEX proposal. */ export declare function nextPendingMultisigIpex(hby: Habery, runtime: AgentRuntime, options: PendingMultisigIpexOptions): Operation; /** Return the first incomplete stored `/multisig/exn` wrapping `/ipex/*`. */ export declare function findPendingMultisigIpex(hby: Habery, runtime: AgentRuntime): SerderKERI | null; /** Send a completed group IPEX message from the elected local lead. */ export declare function sendCompletedGroupIpex(runtime: AgentRuntime, groupHab: Hab, embedded: SerderKERI, delivery?: IpexDeliveryPreference, gvrsn?: Versionage): Operation; /** Load one accepted stored EXN by SAID. */ export declare function requireStoredExchange(hby: Habery, said: string): SerderKERI; /** Rebuild a stored EXN wire message with signatures and pathed material. */ export declare function storedExchangeMessage(hby: Habery, serder: SerderKERI, gvrsn?: Versionage, pathedOverride?: readonly Uint8Array[]): Uint8Array; /** Send raw credential/IPEX bytes over the credential mailbox topic. */ export declare function sendCredentialBytes(runtime: AgentRuntime, hab: Hab, recipient: string, messages: Uint8Array[], delivery: IpexDeliveryPreference | undefined): Operation; //# sourceMappingURL=ipex-grouping.d.ts.map