export declare class Matrix implements Iterable { private rowSize; private colSize; protected arr: T[][]; constructor(rowSize?: number, colSize?: number, ...rows: T[][]); get IsSquare(): boolean; get ColSize(): number; get RowSize(): number; set(value: T, row: number, col: number): void; getElement(row: number, col: number): T; getSize(): number[]; get(row?: number, col?: number): T | T[]; getColumn(col: number): T[]; getRow(row: number): T[]; forEachRow(fn: (index: number, item: T[], items: T[][]) => void): this; replaceEachRow(fn: (index: number, item: T[], items: T[][]) => void): this; [Symbol.iterator](): IterableIterator; rotateLeft(times: number): Matrix; rotateRight(times: number): Matrix; reverse(): Matrix; transpose(): Matrix; toArray(): T[][]; protected swapValues(firstRow: number, firstCol: number, secondRow: number, secondCol: number): void; protected checkColumnIndex(col: number): void; protected checkRowIndex(row: number): void; protected checkIndexes(row: number, col: number): void; private init; }