/** Thrown when a BWC-ID string cannot be parsed or is invalid. */
export declare class InvalidBwcIdException extends Error {
    constructor(message: string);
}
/**
 * Describes the properties of a single BWC letter (e.g. 'A', 'C', 'D').
 *
 * Each BWC letter maps to a number of contiguous carriers and an aggregated
 * bandwidth range, as defined in 3GPP TS 38.101.
 */
export declare class BWCValue {
    /** Number of contiguous component carriers. */
    readonly nrofCarriers: number;
    /** Minimum aggregated bandwidth in MHz (exclusive lower bound). */
    readonly minBW: number;
    /** Maximum aggregated bandwidth in MHz (inclusive upper bound). */
    readonly maxBW: number;
    /** Fallback group indices for this BWC letter. */
    readonly fallbackGroup: number[];
    constructor(aNrofCarriers: number, aMinBW: number, aMaxBw: number, aFallbackGroupList?: number[]);
}
/** BWC letter definitions for FR1, as per TS 38.101-1. */
export declare const bwcValuesFR1: Record<string, BWCValue>;
/** BWC letter definitions for FR2, as per TS 38.101-2. */
export declare const bwcValuesFR2: Record<string, BWCValue>;
/**
 * Checks whether a BWC letter is valid for the given frequency range.
 *
 * @param aBwc — the BWC letter to check (e.g. `"A"`, `"C"`, `"R3"`).
 * @param aFrequencyRange — 0 = either FR, 1 = FR1 only, 2 = FR2 only.
 * @returns true if the letter is defined in the corresponding BWC table.
 */
export declare function IsValidBwcCharacter(aBwc: string, aFrequencyRange?: number): boolean;
/**
 * Compares two BWC value strings with natural ordering:
 * alphabetical by letter prefix, then numeric by trailing digits.
 * e.g. "R" < "R2" < "R9" < "R10" < "R12" < "S"
 */
export declare function compareBwcValues(a: string, b: string): number;
/**
 * Represents a Bandwidth Combination Identifier for a single band within a BC-ID.
 *
 * A BWC-ID is either a single letter (e.g. `"A"`, `"C"`) for a simple carrier
 * configuration, or a parenthesized multi-component expression (e.g. `"(2A-C)"`)
 * describing contiguous carrier groups with optional multipliers.
 *
 * Examples:
 * - `"A"` — single non-contiguous carrier
 * - `"C"` — two contiguous carriers (FR1: 100–200 MHz aggregate)
 * - `"(2A)"` — two non-contiguous single carriers
 * - `"(2A-C)"` — two non-contiguous single carriers plus one contiguous pair
 */
export declare class BWC_ID {
    private readonly str;
    /** Whether this BWC-ID was successfully parsed. */
    readonly isValid: boolean;
    /** The individual contiguous carrier group letters after expansion. */
    readonly contGroups: string[];
    /**
     * Parses a BWC-ID string.
     *
     * @param aString — the BWC-ID string to parse (e.g. `"A"`, `"(2A-C)"`).
     * @throws InvalidBwcIdException if the string cannot be parsed.
     */
    constructor(aString: string);
    /** Returns the expanded list of contiguous carrier group letters. */
    getContGroups(): string[];
    /** Returns the number of non-contiguous carrier groups (i.e. the length of contGroups). */
    getNrofNonContiguousCarriers(): number;
    /**
     * Returns the total number of component carriers across all contiguous groups.
     *
     * Sums the nrofCarriers from the BWCValue for each contiguous group letter.
     * E.g., "(2A-C)" with FR1 returns 4 (1+1+2), "C" with FR1 returns 2.
     *
     * @param aFrequencyRange — 0 = try both FR1 and FR2, 1 = FR1 only, 2 = FR2 only
     * @returns total number of physical carriers
     */
    getNrofCarriers(aFrequencyRange?: number): number;
    private contStr;
    /** Returns the original BWC-ID string. */
    valueOf(): string;
    /** Returns the original BWC-ID string. */
    toString(): string;
    /** Returns true if this BWC-ID has the same string representation as `other`. */
    equals(other: BWC_ID | string): boolean;
    /**
     * Ordering comparison: fewer non-contiguous carriers first,
     * then alphabetical by sorted contiguous group letters.
     */
    lessThan(value: BWC_ID | string): boolean;
    /** Returns true if this BWC-ID is strictly greater than `value`. */
    greaterThan(value: BWC_ID | string): boolean;
    /** Returns true if this BWC-ID is less than or equal to `value`. */
    lessOrEqual(value: BWC_ID | string): boolean;
    /** Returns true if this BWC-ID is greater than or equal to `value`. */
    greaterOrEqual(value: BWC_ID | string): boolean;
}
