import { type ParsedConstraint } from "./option-parser.js";
interface SourceOption {
    datasheet_id: string;
    line: string;
    description: string | null;
}
interface SourceComposition {
    datasheet_id: string;
    line: string;
    description: string;
}
interface SourceModel {
    datasheet_id: string;
    name: string;
}
interface GameVersion {
    edition: string;
    dataslate: string;
}
export interface WargearEntity {
    id: string;
    name: string;
    category?: string;
    game_version: GameVersion;
}
export interface WargearOptionEntity {
    id: string;
    unit_id: string;
    model_constraint?: ParsedConstraint;
    replaces?: string[];
    replacement?: string[];
    replacement_choice?: string[][];
    is_free: boolean;
    game_version: GameVersion;
}
export interface UnparsedOption {
    unit_id: string | null;
    datasheet: string;
    line: string;
    description: string | null;
    reason: string;
}
export interface BuildWargearResult {
    wargearOptions: WargearOptionEntity[];
    wargear: WargearEntity[];
    unparsed: UnparsedOption[];
}
export declare function buildWargearOptions(factionDatasheets: readonly {
    id: string;
    name: string;
}[], allModels: readonly SourceModel[], allOptions: readonly SourceOption[], allComposition: readonly SourceComposition[], unitWeaponIds: Map<string, Set<string>>, // UUID → weapon ids on that unit
globalWeaponIds: Set<string>, // every weapon id in the faction
gameVersion: GameVersion): BuildWargearResult;
export {};
//# sourceMappingURL=wargear-options.d.ts.map