import { CampaignIsolation, CantonTestActor } from "../campaign/campaign-types.js"; import { CampaignMetricOutcome } from "../campaign/campaign-metrics.js"; export interface CantonTestRoute { readonly actAs: readonly string[]; readonly actor: string; readonly participant: string; readonly party: string; readonly readAs: readonly string[]; } export type CantonCommandOutcome = { readonly commandId?: string; readonly kind: "accepted"; readonly transactionId?: string; } | { readonly details: string; readonly kind: "protocol-revert"; readonly statusCode: number; } | { readonly details: string; readonly kind: "transport-error"; readonly statusCode?: number; } | { readonly details: string; readonly kind: "timeout"; readonly statusCode?: number; } | { readonly details: string; readonly kind: "malformed-response"; } | { readonly details: string; readonly kind: "unknown-commit-outcome"; readonly statusCode?: number; }; export interface CantonTestRuntime { readonly actors: Readonly>; readonly isolation: CampaignIsolation; readonly participants: Readonly>; readLedgerEndAsync(participant: string): Promise; resolveRoute(actor: string): CantonTestRoute; submitAndWaitAsync(actor: string, request: unknown): Promise; } export declare function createCantonTestRuntime(init: { readonly actors: Readonly>; readonly isolation: CampaignIsolation; readonly participants: Readonly>; }): CantonTestRuntime; export declare function classifyCantonCommandOutcome(input: { readonly error?: unknown; readonly response?: unknown; }): CantonCommandOutcome; /** Converts the runtime's transport-safe outcome into the campaign metric union. */ export declare function toCampaignMetricOutcome(outcome: CantonCommandOutcome): CampaignMetricOutcome; export declare function pollUntilAsync(init: { readonly intervalMs: number; readonly isReady: (value: T) => boolean; readonly readAsync: () => Promise; readonly timeoutMs: number; }): Promise;