export interface CellLocation { index: number; row: number; col: number; } export interface Cell { index: number; value: T; } export declare class Matrix { private readonly _values; readonly metaMatrix: MetaMatrix; constructor(_values: T[], metaMatrix: MetaMatrix); setAt(index: number, newValue: T): Matrix; get(row: number, col: number): T; at(i: number): T; getRow(i: number): T[]; getRows(): T[][]; getCol(i: number): T[]; getCols(): T[][]; clone(): Matrix; get values(): T[]; equals(matrix: Matrix): boolean; static init(metaMatrix: MetaMatrix, value: T): Matrix; toString(): string; } export declare type MatrixLine = CellLocation[]; export declare class MetaMatrix { readonly rows: number; readonly cols: number; constructor(rows: number, cols: number); index(i: number): CellLocation; all(): CellLocation[]; col(c: number): MatrixLine; row(r: number): MatrixLine; allRows(): MatrixLine[]; equals(metaMatrix: MetaMatrix): boolean; }