import React from "react";
import { Sheet, Selection, CellMatrix, Cell } from "./types";
export type Hooks = {
    rowColChange?: (conf: {
        action: "add" | "delete";
        type: "row" | "column";
        index: number;
        count: number;
        direction?: "lefttop" | "rightbottom";
        id: string;
    }) => void;
    onCopySheet?: (oldSheetId: string, newSheetId: string) => void;
    commentsPreRender?: (r: number, c: number) => any;
    showCommentsMenu?: (item: {
        text: string;
        show: boolean;
        onClick: any;
    }, r: any, c: any) => boolean;
    showMenuBefore?: (ctx: any, selection: any) => boolean;
    beforeUpdateCell?: (r: number, c: number, value: any) => boolean;
    afterUpdateCell?: (row: number, column: number, oldValue: any, newValue: any) => void;
    afterSelectionChange?: (sheetId: string, selection: Selection) => void;
    beforeRenderRowHeaderCell?: (rowNumber: string, rowIndex: number, top: number, width: number, height: number, ctx: CanvasRenderingContext2D) => boolean;
    afterRenderRowHeaderCell?: (rowNumber: string, rowIndex: number, top: number, width: number, height: number, ctx: CanvasRenderingContext2D) => void;
    beforeRenderColumnHeaderCell?: (columnChar: string, columnIndex: number, left: number, width: number, height: number, ctx: CanvasRenderingContext2D) => boolean;
    afterRenderColumnHeaderCell?: (columnChar: string, columnIndex: number, left: number, width: number, height: number, ctx: CanvasRenderingContext2D) => void;
    beforeRenderCellArea?: (cells: CellMatrix, ctx: CanvasRenderingContext2D) => boolean;
    beforeRenderCell?: (cell: Cell | null, cellInfo: {
        row: number;
        column: number;
        startX: number;
        startY: number;
        endX: number;
        endY: number;
    }, ctx: CanvasRenderingContext2D) => boolean;
    afterRenderCell?: (cell: Cell | null, cellInfo: {
        row: number;
        column: number;
        startX: number;
        startY: number;
        endX: number;
        endY: number;
    }, ctx: CanvasRenderingContext2D) => void;
    beforeCellMouseDown?: (cell: Cell | null, cellInfo: {
        row: number;
        column: number;
        startRow: number;
        startColumn: number;
        endRow: number;
        endColumn: number;
    }) => boolean;
    afterCellMouseMove?: (cell: Cell | null, cellInfo: {
        rowIndex: number;
        colIndex: number;
        startRow: number;
        startColumn: number;
    }) => void;
    afterCellDrop?: (cell: Cell | null, cellInfo: {
        rowIndex: number;
        colIndex: number;
        startRow: number;
        startColumn: number;
    }) => void;
    afterCellMouseLeave?: () => void;
    afterCellMouseDown?: (cell: Cell | null, cellInfo: {
        row: number;
        column: number;
        startRow: number;
        startColumn: number;
        endRow: number;
        endColumn: number;
    }) => void;
    beforePaste?: (selection: Selection[] | undefined, content: string) => boolean;
    beforeUpdateComment?: (row: number, column: number, value: any) => boolean;
    afterUpdateComment?: (row: number, column: number, value: any, isOver: boolean) => void;
    beforeInsertComment?: (row: number, column: number) => boolean;
    afterInsertComment?: (row: number, column: number) => void;
    beforeDeleteComment?: (row: number, column: number) => boolean;
    afterDeleteComment?: (row: number, column: number) => void;
    beforeAddSheet?: (sheet: Sheet) => boolean;
    afterAddSheet?: (sheet: Sheet) => void;
    beforeActivateSheet?: (id: string) => boolean;
    afterActivateSheet?: (id: string) => void;
    beforeDeleteSheet?: (id: string) => boolean;
    afterDeleteSheet?: (id: string) => void;
    beforeUpdateSheetName?: (id: string, oldName: string, newName: string) => boolean;
    afterUpdateSheetName?: (id: string, oldName: string, newName: string) => void;
};
export type Settings = {
    headerBgColor?: string;
    toolbarRightRender?: any;
    renderBottomToolbar?: any;
    renderTopToolbar?: any;
    onClickContentEditable?: any;
    renderCustomColor?: any;
    renderFormulaHint?: any;
    renderFormulaSearch?: any;
    renderEditorSelector?: any;
    copyRich?: boolean;
    renderCalcInfo?: any;
    renderFreezeCol?: any;
    renderFreezeRow?: any;
    renderFilter?: any;
    fxContainer?: any;
    disabledKeyboardCodes?: string[];
    blank?: {
        width: number;
        height: number;
    };
    Footer?: any;
    column?: number;
    row?: number;
    addRows?: number;
    allowEdit?: boolean;
    showToolbar?: boolean;
    showFormulaBar?: boolean;
    showSheetTabs?: boolean;
    data: Sheet[];
    config?: any;
    devicePixelRatio?: number;
    lang?: string | null;
    forceCalculation?: boolean;
    rowHeaderWidth?: number;
    columnHeaderHeight?: number;
    defaultColWidth?: number;
    defaultRowHeight?: number;
    defaultFontSize?: number;
    toolbarItems?: string[];
    cellContextMenu?: () => string[];
    headerContextMenu?: string[];
    cellCustomContextMenu?: (selectSave?: any, headMenu?: any) => {
        key: string;
        element: any;
        onClick: any;
    }[];
    sheetTabContextMenu?: string[];
    filterContextMenu?: string[];
    generateSheetId?: () => string;
    hooks?: Hooks;
    customToolbarItems?: {
        key: string;
        tooltip?: string;
        children?: React.ReactNode;
        iconName?: string;
        icon?: React.ReactNode;
        onClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    }[];
};
export declare const defaultSettings: Required<Settings>;
