import type { SynthEvent } from "../types/index.js"; import { type AggregateGraphNode } from "./replay.js"; import type { NormalizationNotice } from "./historical-normalizer.js"; export type IdentityEntry = { canonicalId: string; kind: AggregateGraphNode["kind"]; canonicalEventId: string; canonicalEventIndex: number; aliases: string[]; }; export type IdentityRegistry = Map; export type IdentityResolutionResult = { registry: IdentityRegistry; /** Identity-related notices (duplicates, superseded versions, etc.) */ notices: NormalizationNotice[]; }; /** * Build the canonical identity registry from normalized events. * * The current implementation uses deterministic fallback (earliest creation * wins) because the Historical Normalizer has already collapsed exact * duplicates. This function is the explicit home for future priority rules * such as "latest accepted" or "lineage relationship". */ export declare function resolveIdentities(events: SynthEvent[]): IdentityResolutionResult; export declare function getCanonicalId(registry: IdentityRegistry, id: string): string | undefined;