specpress
Version:
Export PDF and/or DOCX files from a subset of Markdown, ASN.1 and JSON files
99 lines (98 loc) • 4.42 kB
TypeScript
/** 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;
}