/** An evaluated contributor namespace and its already-resolved Go source. */ type ConfigPluginEntry = { namespace: string; source: string; }; /** A native-host contributor name paired with its original source directory. */ type TtscPluginContributor = { name: string; source: string; }; /** * Normalize evaluated contributor namespaces without losing a distinct * registration. * * Hyphens become underscores in Go package names. Distinct user namespaces that * then collide are rejected before exact repeated namespaces keep their first * source, preserving config-array folding's established precedence. * * @evidence contracts/common.md#principled-implementation Collision detection groups original namespace spellings by hyphen-to-underscore Go names before folding exact repetitions, so a distinct registration cannot silently disappear and a repeated spelling retains its first source. * @evidence contracts/common.md#clear-and-simple-design The operation owns namespace normalization and repetition precedence after config evaluation; filesystem discovery, contributor resolution and cache lifetime remain with the descriptor resolver. * @evidence contracts/common.md#prohibited-implementation-shortcuts Every evaluated entry follows the same normalization and collision rules, without fixture-specific names, foreign mutation or a fallback that discards a distinct colliding namespace. * @evidence contracts/common.md#meaningful-documentation Native prose states the Go naming transformation, collision failure and first-source precedence, with descriptive paragraphs separated from acknowledgment tags. */ export declare function normalizeContributors(entries: ConfigPluginEntry[], configPath: string): TtscPluginContributor[]; export {};