export type CampaignMetricOutcome = { readonly kind: "accepted"; readonly updateId: string; } | { readonly kind: "discarded"; readonly reason: string; } | { readonly kind: "malformed-response"; readonly reason: string; } | { readonly kind: "protocol-revert"; readonly reason: string; } | { readonly kind: "timeout"; readonly reason: string; } | { readonly kind: "transport-error"; readonly reason: string; } | { readonly kind: "unknown-commit-outcome"; readonly reason: string; }; export interface CampaignMetrics { readonly byActor: Readonly>>>; readonly byTarget: Readonly>>>; } export declare function createCampaignMetrics(): CampaignMetrics; export declare function recordCampaignAction(metrics: CampaignMetrics, action: { readonly actor: string; readonly outcome: CampaignMetricOutcome; readonly targetKey: string; }): void;