/**
 * Table provides O(1) bijective mapping between ordered pairs from two finite sets and a unique linear index.
 * All possible combination pairs are sorted by their weight (sum of indices) in ascending order.
 * Supports both zero-based and one-based indexing.
 */
export declare class Table {
    /**
     * Initializes a new instance of the Table class.
     * @param lengthOfA Number of elements in the first set.
     * @param lengthOfB Number of elements in the second set.
     * @param zeroBasedIndex True for zero-based indexing, false for one-based indexing.
     * @throws Error if lengthOfA or lengthOfB is 0 or less.
     */
    constructor(lengthOfA: number, lengthOfB: number, zeroBasedIndex: boolean);
    /** Length of Set A */
    LengthOfA: number;
    /** Length of Set B */
    LengthOfB: number;
    /** Lower length of both sets */
    LowerLength: number;
    /** Maximum Sum for Range 1 */
    MaxSumRange1: number;
    /** Maximum Sum for Range 2 */
    MaxSumRange2: number;
    /** Maximum Sum for Range 3 */
    MaxSumRange3: number;
    /** Maximum Index for Range 1 */
    MaxIndexRange1: number;
    /** Maximum Index for Range 2 */
    MaxIndexRange2: number;
    /** Maximum Index for Range 3 */
    MaxIndexRange3: number;
    /** Zero based indexing or not */
    ZeroBasedIndex: boolean;
    /**
     * Computes and sets internal values used for index and pair calculations.
     */
    private Abstract;
    /**
     * Returns the unique index value for the given combination pair (ai, bi).
     * @param ai Element index of set A.
     * @param bi Element index of set B.
     * @returns Index value for the given combination pair.
     * @throws Error if ai or bi has invalid value.
     */
    GetIndexOfElements(ai: number, bi: number): number;
    /**
     * Returns the combination pair corresponding to the given index value.
     * @param index Index value of the combination pair.
     * @returns Tuple [ai, bi] representing the combination pair.
     * @throws Error if index has invalid value.
     */
    GetElementsAtIndex(index: number): [number, number];
}
