/**
 * Helpers shared by the three NewRecruit text adapters (wtc-compact, wtc-full,
 * simple). These are pure string-massage utilities: they take format-specific
 * tokens and turn them into the format-agnostic {@link ParsedRoster} pieces.
 *
 * No business knowledge of dataset entities lives here — name resolution is
 * still {@link resolve}'s job downstream.
 *
 * @packageDocumentation
 */
import type { ParsedWargear } from "./types.js";
/**
 * Synthesize a {@link ParsedRoster.battle_size_raw} from a points limit. The
 * wtc/simple formats don't carry the battle-size label explicitly — they only
 * report the total army points — so we map the limit to its standard label
 * (the same one {@link mapBattleSize} expects).
 */
export declare function inferBattleSizeRaw(limit: number | null): string | null;
/** Outcome of classifying a comma-separated wargear list. */
export interface ClassifiedTokens {
    wargear: ParsedWargear[];
    is_warlord: boolean;
    is_character: boolean;
    /** Enhancement raw name, when one was inlined in the wargear list (simple format). */
    enhancement_raw_name: string | null;
    /** Enhancement points cost when given inline (simple format), else null. */
    enhancement_points: number | null;
}
/**
 * Classify each token in a comma-separated wargear list. Strips the markers
 * that aren't real wargear — `Warlord`, the detachment "<Name> Character"
 * keyword, and the inline `Name [N pts]` enhancement (simple format) — and
 * collects everything else as {@link ParsedWargear} with optional `Nx` count.
 *
 * Tokens are pre-split: pass `["Armoured feet", "2x War Dog autocannon", ...]`.
 */
export declare function classifyWargearList(tokens: readonly string[]): ClassifiedTokens;
/**
 * Split a wargear list on top-level commas. (No nested parentheses with commas
 * are produced by NewRecruit, so a plain split is enough; the helper keeps
 * intent explicit for future format quirks.)
 */
export declare function splitWargearList(text: string): string[];
/** Strip a trailing parenthetical (e.g. "Houndpack Lance (Marked Prey)" → "Houndpack Lance"). */
export declare function stripParenthetical(name: string): string;
/** Pull the primary faction out of a "Super - Sub" keyword, e.g.
 * "Chaos - Chaos Knights" → "Chaos Knights". Shared by the wtc and GW headers. */
export declare function factionFromKeyword(value: string): string;
/** Parse a `(\d+) pts` or `[\d+ pts]` suffix from a unit header line. */
export declare function pointsFrom(token: string): number | null;
//# sourceMappingURL=newrecruit-text.d.ts.map