import { Matrix } from './matrix';
import { Point } from './point';
import { CellBase, Dimensions, CommitChanges, CreateFormulaParser } from './types';
import { Selection } from './selection';
export declare const SET_DATA = "SET_DATA";
export declare const SET_CREATE_FORMULA_PARSER = "SET_CREATE_FORMULA_PARSER";
export declare const SELECT_ENTIRE_ROW = "SELECT_ENTIRE_ROW";
export declare const SELECT_ENTIRE_COLUMN = "SELECT_ENTIRE_COLUMN";
export declare const SELECT_ENTIRE_WORKSHEET = "SELECT_ENTIRE_WORKSHEET";
export declare const SET_SELECTION = "SET_SELECTION";
export declare const SELECT = "SELECT";
export declare const ACTIVATE = "ACTIVATE";
export declare const SET_CELL_DATA = "SET_CELL_DATA";
export declare const SET_CELL_DIMENSIONS = "SET_CELL_DIMENSIONS";
export declare const COPY = "COPY";
export declare const CUT = "CUT";
export declare const PASTE = "PASTE";
export declare const EDIT = "EDIT";
export declare const VIEW = "VIEW";
export declare const CLEAR = "CLEAR";
export declare const BLUR = "BLUR";
export declare const KEY_PRESS = "KEY_PRESS";
export declare const KEY_DOWN = "KEY_DOWN";
export declare const DRAG_START = "DRAG_START";
export declare const DRAG_END = "DRAG_END";
export declare const COMMIT = "COMMIT";
export declare const BOLD = "BOLD";
export declare const ITALIC = "ITALIC";
export declare const UNDERLINE_TYPE = "UNDERLINE_TYPE";
export declare const FONT_FAMILY = "FONT_FAMILY";
export declare const FONT_SIZE = "FONT_SIZE";
export declare const TEXT_ALIGN = "TEXT_ALIGN";
export declare const BORDER_TYPE = "BORDER_TYPE";
export declare const COLOR = "COLOR";
export declare const BACKGROUND_COLOR = "BACKGROUND_COLOR";
export declare const FORMATE_PAINTER = "FORMATE_PAINTER";
export declare const ADD_ROW_TOP = "ADD_ROW_TOP";
export declare const ADD_ROW_BOTTOM = "ADD_ROW_BOTTOM";
export declare const ADD_COLUMN_LEFT = "ADD_COLUMN_LEFT";
export declare const ADD_COLUMN_RIGHT = "ADD_COLUMN_RIGHT";
export declare const DELETE_ROW = "DELETE_ROW";
export declare const DELETE_COLUMN = "DELETE_COLUMN";
export declare const SET_ROW_HEIGHT = "SET_ROW_HEIGHT";
export declare const SET_COLUMN_WIDTH = "SET_COLUMN_WIDTH";
export declare const SET_COLUMN_POSITION = "SET_COLUMN_POSITION";
export declare const SET_AUTO_FILL = "SET_AUTO_FILL";
export declare const UPDATE_COLUMN_DIMENSIONS = "UPDATE_COLUMN_DIMENSIONS";
export declare const SET_EDITABLE = "SET_EDITABLE";
export declare const ON_MOUSE_UP = "ON_MOUSE_UP";
export type BaseAction<T extends string> = {
    type: T;
};
export type OnMouseUp = BaseAction<typeof ON_MOUSE_UP> & {
    payload: {
        point: Point;
    };
};
export declare function onMouseUp(point: Point): OnMouseUp;
export type UpdateColumnDimensions = BaseAction<typeof UPDATE_COLUMN_DIMENSIONS> & {
    payload: {
        minimumColumnWidth: number;
    };
};
export declare function updateColumnDimensions(minimumColumnWidth: number): UpdateColumnDimensions;
export type SetEditable = BaseAction<typeof SET_EDITABLE> & {
    payload: {
        editable: boolean;
    };
};
export declare function editable(editable: boolean): SetEditable;
export type SetAutoFill = BaseAction<typeof SET_AUTO_FILL> & {
    payload: {
        autofill: boolean;
    };
};
export declare function autoFill(autofill: boolean): SetAutoFill;
export type SetRowHeight = BaseAction<typeof SET_ROW_HEIGHT> & {
    payload: {
        row: number;
        height: number;
    };
};
export declare function setRowHeight(row: number, height: number): SetRowHeight;
export type SetColumnWidth = BaseAction<typeof SET_COLUMN_WIDTH> & {
    payload: {
        column: number;
        width: number;
    };
};
export declare function setColumnWidth(column: number, width: number): SetColumnWidth;
export type SetColumnPosition = BaseAction<typeof SET_COLUMN_POSITION> & {
    payload: {
        column: number;
        width: number;
    };
};
export declare function setColumnPosition(column: number, width: number): SetColumnPosition;
export type BoldStyle = BaseAction<typeof BOLD> & {
    payload: {
        data: Matrix<CellBase>;
    };
};
export declare function bold(data: Matrix<CellBase>): BoldStyle;
export type ItalicStyle = BaseAction<typeof ITALIC> & {
    payload: {
        data: Matrix<CellBase>;
    };
};
export declare function italic(data: Matrix<CellBase>): ItalicStyle;
export type BorderType = BaseAction<typeof BORDER_TYPE> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
        color: string;
    };
};
export declare function borderType(data: Matrix<CellBase>, value: string, color: string): BorderType;
export type UnderlineTypeStyle = BaseAction<typeof UNDERLINE_TYPE> & {
    payload: {
        data: Matrix<CellBase>;
    };
};
export declare function underlineType(data: Matrix<CellBase>): UnderlineTypeStyle;
export type FontSize = BaseAction<typeof FONT_SIZE> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
    };
};
export declare function fontSize(data: Matrix<CellBase>, value: string): FontSize;
export type FontFamily = BaseAction<typeof FONT_FAMILY> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
    };
};
export declare function fontFamily(data: Matrix<CellBase>, value: string): FontFamily;
export type TextAlignType = BaseAction<typeof TEXT_ALIGN> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
    };
};
export declare function textAlign(data: Matrix<CellBase>, value: string): TextAlignType;
export type ColorStyle = BaseAction<typeof COLOR> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
    };
};
export declare function color(data: Matrix<CellBase>, value: string): ColorStyle;
export type BackgroundStyle = BaseAction<typeof BACKGROUND_COLOR> & {
    payload: {
        data: Matrix<CellBase>;
        value: string;
    };
};
export declare function backgroundStyle(data: Matrix<CellBase>, value: string): BackgroundStyle;
export type FormatePainterStyle = BaseAction<typeof FORMATE_PAINTER> & {
    payload: {
        data: Matrix<CellBase>;
    };
};
export declare function formatePainter(data: Matrix<CellBase>): FormatePainterStyle;
type RowNum = {
    row: number | undefined;
};
type ColNum = {
    columnWidth?: number | undefined;
    column: number | undefined;
};
export type AddRowTop = BaseAction<typeof ADD_ROW_TOP> & RowNum;
export declare function addRowTop(row?: number): AddRowTop;
export type AddRowBottom = BaseAction<typeof ADD_ROW_BOTTOM> & RowNum;
export declare function addRowBottom(row?: number): AddRowBottom;
export type AddColumnLeft = BaseAction<typeof ADD_COLUMN_LEFT> & ColNum;
export declare function addColumnLeft(columnWidth?: number, column?: number): AddColumnLeft;
export type AddColumnRight = BaseAction<typeof ADD_COLUMN_RIGHT> & ColNum;
export declare function addColumnRight(columnWidth?: number, column?: number): AddColumnRight;
export type DeleteRow = BaseAction<typeof DELETE_ROW> & RowNum;
export declare function deleteRow(row?: number): DeleteRow;
export type DeleteColumn = BaseAction<typeof DELETE_COLUMN> & ColNum;
export declare function deleteColumn(column?: number): DeleteColumn;
export type SetDataAction = BaseAction<typeof SET_DATA> & {
    payload: {
        data: Matrix<CellBase>;
    };
};
export type KeyPressAction = BaseAction<typeof KEY_PRESS> & {
    payload: {
        event: React.KeyboardEvent;
    };
};
export declare function keyPress(event: React.KeyboardEvent): KeyPressAction;
export declare function setData(data: Matrix<CellBase>): SetDataAction;
export type SetCreateFormulaParserAction = BaseAction<typeof SET_CREATE_FORMULA_PARSER> & {
    payload: {
        createFormulaParser: CreateFormulaParser;
    };
};
export declare function setCreateFormulaParser(createFormulaParser: CreateFormulaParser): SetCreateFormulaParserAction;
export type SelectEntireRowAction = BaseAction<typeof SELECT_ENTIRE_ROW> & {
    payload: {
        row: number;
        extend: boolean;
    };
};
export declare function selectEntireRow(row: number, extend: boolean): SelectEntireRowAction;
export type SelectEntireColumnAction = BaseAction<typeof SELECT_ENTIRE_COLUMN> & {
    payload: {
        column: number;
        extend: boolean;
    };
};
export declare function selectEntireColumn(column: number, extend: boolean): SelectEntireColumnAction;
export type SelectEntireWorksheetAction = BaseAction<typeof SELECT_ENTIRE_WORKSHEET>;
export declare function selectEntireWorksheet(): SelectEntireWorksheetAction;
export type SetSelectionAction = BaseAction<typeof SET_SELECTION> & {
    payload: {
        selection: Selection;
    };
};
export declare function setSelection(selection: Selection): SetSelectionAction;
export type SelectAction = BaseAction<typeof SELECT> & {
    payload: {
        point: Point;
    };
};
export declare function select(point: Point): SelectAction;
export type ActivateAction = BaseAction<typeof ACTIVATE> & {
    payload: {
        point: Point;
    };
};
export declare function activate(point: Point): ActivateAction;
export type SetCellDataAction = BaseAction<typeof SET_CELL_DATA> & {
    payload: {
        active: Point;
        data: CellBase;
    };
};
export declare function setCellData(active: Point, data: CellBase): SetCellDataAction;
export type SetCellDimensionsAction = BaseAction<typeof SET_CELL_DIMENSIONS> & {
    payload: {
        point: Point;
        dimensions: Dimensions;
    };
};
export declare function setCellDimensions(point: Point, dimensions: Dimensions): SetCellDimensionsAction;
export type PasteAction = BaseAction<typeof PASTE> & {
    payload: {
        data: string;
    };
};
export declare function paste(data: string): PasteAction;
export type KeyDownAction = BaseAction<typeof KEY_DOWN> & {
    payload: {
        event: React.KeyboardEvent;
    };
};
export declare function keyDown(event: React.KeyboardEvent): KeyDownAction;
export type DragStartAction = BaseAction<typeof DRAG_START>;
export declare function dragStart(): DragStartAction;
export type DragEndAction = BaseAction<typeof DRAG_END>;
export declare function dragEnd(): DragEndAction;
export type CommitAction = BaseAction<typeof COMMIT> & {
    payload: {
        changes: CommitChanges;
    };
};
export declare function commit(changes: CommitChanges): CommitAction;
export type CopyAction = BaseAction<typeof COPY>;
export declare function copy(): CopyAction;
export type CutAction = BaseAction<typeof CUT>;
export declare function cut(): CutAction;
export type EditAction = BaseAction<typeof EDIT>;
export declare function edit(): EditAction;
export type ViewAction = BaseAction<typeof VIEW>;
export declare function view(): ViewAction;
export type ClearAction = BaseAction<typeof CLEAR>;
export declare function clear(): ClearAction;
export type BlurAction = BaseAction<typeof BLUR>;
export declare function blur(): BlurAction;
export type Action = SetDataAction | SetCreateFormulaParserAction | SelectEntireRowAction | SelectEntireColumnAction | SelectEntireWorksheetAction | SetSelectionAction | SelectAction | ActivateAction | SetCellDataAction | SetCellDimensionsAction | PasteAction | KeyDownAction | DragStartAction | DragEndAction | CommitAction | CopyAction | CutAction | EditAction | ViewAction | ClearAction | UnderlineTypeStyle | FontSize | FontFamily | KeyPressAction | TextAlignType | BorderType | ItalicStyle | BoldStyle | ColorStyle | BackgroundStyle | FormatePainterStyle | AddRowTop | AddRowBottom | AddColumnLeft | AddColumnRight | DeleteRow | DeleteColumn | SetRowHeight | SetColumnWidth | SetColumnPosition | SetAutoFill | UpdateColumnDimensions | SetEditable | OnMouseUp | BlurAction;
export {};
