/**
 * Weapon profile merging and cross-unit deduplication.
 *
 * Source data splits multi-profile weapons into separate rows using an
 * en-dash delimiter: "Plasma pistol – Standard" / "Plasma pistol – Supercharge".
 * These become a single weapon entity with a profiles array.
 *
 * Cross-unit dedup: weapons with identical (name, type, all profile stats)
 * across different units are the same entity, referenced by a shared ID.
 */
export interface SourceWargear {
    datasheet_id: string;
    line: string;
    line_in_wargear: string;
    dice: string;
    name: string;
    description: string;
    range: string;
    type: string;
    A: string;
    BS_WS: string;
    S: string;
    AP: string;
    D: string;
}
export interface WeaponProfile {
    name: string;
    range: number | "Melee";
    stats: {
        A: number | string;
        BS?: number | null;
        WS?: number | null;
        S: number | string;
        AP: number;
        D: number | string;
    };
    keywords: string[];
}
export interface WeaponEntity {
    id: string;
    name: string;
    type: "ranged" | "melee";
    profiles: WeaponProfile[];
    game_version: {
        edition: string;
        dataslate: string;
    };
}
/**
 * Merge wargear rows for a single unit into weapon entities,
 * then deduplicate across all units.
 */
export declare function buildWeaponRegistry(allUnitWargear: Map<string, SourceWargear[]>, gameVersion: {
    edition: string;
    dataslate: string;
}): {
    weapons: WeaponEntity[];
    /** Maps (datasheetId) → Set of weapon entity IDs for that unit */
    unitWeaponIds: Map<string, Set<string>>;
};
//# sourceMappingURL=weapon-dedup.d.ts.map