import * as Types from './types';
import * as Matrix from './matrix';
import * as Point from './point';
import { PointRange } from './point-range';
import { Selection } from './selection';
export { createEmpty as createEmptyMatrix } from './matrix';
export declare const PLAIN_TEXT_MIME = "text/plain";
export declare const FOCUS_WITHIN_SELECTOR = ":focus-within";
/** Move the cursor of given input element to the input's end */
export declare function moveCursorToEnd(el: HTMLInputElement | HTMLTextAreaElement): void;
/**
 * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end. A step of -1 is used if a negative start is specified without an end or step. If end is not specified, it's set to start with start then set to 0.
 * @param end - an integer number specifying at which position to stop (not included).
 * @param start - An integer number specifying at which position to start.
 * @param step - An integer number specifying the Increment */
export declare function range(end: number, start?: number, step?: number): number[];
/** Return whether given point is active */
export declare function isActive(active: Types.StoreState['active'], point: Point.Point): boolean;
/** Get the offset values of given element */
export declare function getOffsetRect(element: HTMLElement): Types.Dimensions;
/** Write given data to clipboard with given event */
export declare function writeTextToClipboard(event: ClipboardEvent, data: string): void;
/** Read text from given clipboard event */
export declare function readTextFromClipboard(event: ClipboardEvent): string;
/** Get the dimensions of cell at point from state */
export declare function getCellDimensions(point: Point.Point, rowDimensions: Types.StoreState['rowDimensions'] | undefined, columnDimensions: Types.StoreState['columnDimensions'] | undefined): Types.Dimensions | undefined;
/** Get the dimensions of customized cell at point from state */
export declare function getScrollCellDimensions(point: Point.Point, rowDimensions: Types.StoreState['rowDimensions'] | undefined, columnDimensions: Types.StoreState['columnDimensions'] | undefined): Types.Dimensions | undefined;
/** Get the dimensions of a range of cells */
export declare function getRangeDimensions(rowDimensions: Types.StoreState['rowDimensions'], columnDimensions: Types.StoreState['columnDimensions'], range: PointRange): Types.Dimensions | undefined;
/** Get the dimensions of selected */
export declare function getSelectedDimensions(rowDimensions: Types.StoreState['rowDimensions'], columnDimensions: Types.StoreState['columnDimensions'], data: Matrix.Matrix<unknown>, selected: Selection): Types.Dimensions | undefined;
/** Get given data as CSV */
export declare function getCSV(data: Matrix.Matrix<Types.CellBase>): string;
/**
 * Calculate the rows and columns counts of a spreadsheet
 * @param data - the spreadsheet's data
 * @param rowLabels - the spreadsheet's row labels (if defined)
 * @param columnLabels - the spreadsheet's column labels (if defined)
 * @returns the rows and columns counts of a spreadsheet
 */
export declare function calculateSpreadsheetSize(data: Matrix.Matrix<unknown>, rowLabels?: string[], columnLabels?: string[]): Matrix.Size;
/** Should spreadsheet handle clipboard event */
export declare function shouldHandleClipboardEvent(root: Element | null, mode: Types.Mode): boolean;
export declare function isFocusedWithin(element: Element): boolean;
export declare function hasLineBreaker(value: unknown): boolean;
export declare const convertPtToPx: (pt: number) => string;
export declare const convertPxToPt: (px: string) => number;
export declare const EmptyCell: Types.CellBase;
export declare const fontFamilyList: {
    label: string;
    value: string;
}[];
export declare const fontSizeList: number[];
export declare const isPasteAllowed: (currentCell: Types.CellBase | null) => boolean;
export declare function getMatrixDimensions(matrixData: [[]]): {
    rowCount: 1;
    columnCount: 0;
};
