import { PointRange } from './point-range'; import * as Point from './point'; import * as Matrix from './matrix'; /** Selection from a spreadsheet */ export declare abstract class Selection { /** Get concrete range of the selection in the given data */ abstract toRange(data: Matrix.Matrix): PointRange | null; /** Normalize the selection according to the given data */ abstract normalizeTo(data: Matrix.Matrix): this; /** Determines whether the given row is entirely selected in given selection */ abstract hasEntireRow(row: number): boolean; /** Determines whether the given column is entirely selected in given selection */ abstract hasEntireColumn(column: number): boolean; /** Get the number of selected points according to given data */ abstract size(data: Matrix.Matrix): number; /** Determines whether the given point is within the selection */ abstract has(data: Matrix.Matrix, point: Point.Point): boolean; /** Determines whether the given selection is equal to this selection */ abstract equals(selection: Selection): boolean; } /** Selection of no cells */ export declare class EmptySelection extends Selection { toRange(data: Matrix.Matrix): PointRange | null; normalizeTo(_: Matrix.Matrix): this; hasEntireRow(): boolean; hasEntireColumn(): boolean; size(): number; has(): boolean; equals(selection: Selection): boolean; } /** Selection of a range of cells */ export declare class RangeSelection extends Selection { range: PointRange; constructor(range: PointRange); toRange(_: Matrix.Matrix): PointRange | null; normalizeTo(data: Matrix.Matrix): this; hasEntireRow(): boolean; hasEntireColumn(): boolean; size(data: Matrix.Matrix): number; has(data: Matrix.Matrix, point: Point.Point): boolean; equals(selection: Selection): boolean; } /** Selection of an entire part of the spreadsheet */ export declare abstract class EntireSelection extends Selection { } /** Selection of the entire worksheet */ export declare class EntireWorksheetSelection extends EntireSelection { toRange(data: Matrix.Matrix): PointRange; normalizeTo(): this; hasEntireColumn(): boolean; hasEntireRow(): boolean; size(data: Matrix.Matrix): number; has(): boolean; equals(selection: Selection): boolean; } /** Selection of an entire axis in the spreadsheet */ export declare abstract class EntireAxisSelection extends EntireSelection { /** Selection start index, integer */ readonly start: number; /** Selection end index, integer */ readonly end: number; /** * @param start - row index where the selection starts, integer * @param end - row index where the selection ends, integer * @throws {@link InvalidIndexError} */ constructor(start: number, end: number); equals(selection: Selection): boolean; } /** Selection of entire rows in the spreadsheet */ export declare class EntireRowsSelection extends EntireAxisSelection { toRange(data: Matrix.Matrix): PointRange; normalizeTo(data: Matrix.Matrix): this; hasEntireRow(row: number): boolean; hasEntireColumn(): boolean; size(data: Matrix.Matrix): number; has(_: Matrix.Matrix, point: Point.Point): boolean; } /** Selection of entire columns in the spreadsheet */ export declare class EntireColumnsSelection extends EntireAxisSelection { toRange(data: Matrix.Matrix): PointRange; normalizeTo(data: Matrix.Matrix): this; hasEntireRow(): boolean; hasEntireColumn(column: number): boolean; size(data: Matrix.Matrix): number; has(_: Matrix.Matrix, point: Point.Point): boolean; } /** Get the point range of given matrix */ export declare function getMatrixRange(data: Matrix.Matrix): PointRange; /** Determines whether the given value is a valid index */ export declare function isIndex(value: number): boolean; /** Error thrown when passing a non-index value where an index value is expected */ export declare class InvalidIndexError extends Error { constructor(name: string); }