import { TouchyEvent } from "./touch";
import { Coord, PanZoom } from "./types";
import { ColorChangeItem } from "../components/Canvas/types";
export declare const getPointFromTouchyEvent: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom) => {
    y: number;
    x: number;
    offsetX: any;
    offsetY: any;
};
export declare const getPointFromTouch: (touch: Touch, element: HTMLCanvasElement, panZoom: PanZoom) => {
    x: number;
    y: number;
    offsetX: number;
    offsetY: number;
};
export declare const calculateNewPanZoomFromPinchZoom: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, zoomSensitivity: number, prevPinchZoomDiff: number | null, minScale: number, maxScale: number) => {
    pinchZoomDiff: number;
    panZoom: PanZoom;
};
export declare const getMouseCartCoord: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, dpr: number) => Coord;
export declare const getCenterCartCoordFromTwoTouches: (evt: TouchyEvent, element: HTMLCanvasElement, panZoom: PanZoom, dpr: number) => Coord;
export declare const getPixelIndexFromMouseCartCoord: (mouseCartCoord: Coord, sortedRowIndices: number[], sortedColumnIndices: number[], gridSquareLength: number) => {
    rowIndex: number;
    columnIndex: number;
};
export declare const getIsPointInsideRegion: (point: Coord, area: {
    startWorldPos: Coord;
    endWorldPos: Coord;
}) => boolean;
export declare const getDoesAreaOverlapPixelgrid: (area: {
    startWorldPos: Coord;
    endWorldPos: Coord;
} | null, rowCount: number, columnCount: number, gridSquareLength: number) => boolean;
export declare const getAreaTopLeftAndBottomRight: (area: {
    startWorldPos: Coord;
    endWorldPos: Coord;
}) => {
    areaTopLeftPos: {
        x: number;
        y: number;
    };
    areaBottomRightPos: {
        x: number;
        y: number;
    };
};
export declare const convertWorldPosAreaToPixelGridArea: (selectingArea: {
    startWorldPos: Coord;
    endWorldPos: Coord;
}, rowCount: number, columnCount: number, gridSquareLength: number, rowKeysInOrder: number[], columnKeysInOrder: number[]) => {
    startWorldPos: Coord;
    endWorldPos: Coord;
    includedPixelsIndices: {
        rowIndex: number;
        columnIndex: number;
    }[];
};
export declare const returnScrollOffsetFromMouseOffset: (mouseOffset: Coord, panZoom: PanZoom, newScale: number) => Coord;
/**
 * @summary it will return world pos relative to originpixel word pos, the origin will be set to 0,0
 * @param pixelIndex - the pixelIndex passed as a parameter should be an integer
 */
export declare const getRelativeCornerWordPosOfPixelToOrigin: (pixelIndex: {
    rowIndex: number;
    columnIndex: number;
}, originPixelIndex: {
    rowIndex: number;
    columnIndex: number;
}, gridSquareLength: number) => {
    topLeft: {
        x: number;
        y: number;
    };
    topRight: {
        x: number;
        y: number;
    };
    bottomLeft: {
        x: number;
        y: number;
    };
    bottomRight: {
        x: number;
        y: number;
    };
};
/**
 * @summary it will return the pixel indices of the corner pixels of the specific pixel
 * @param pixelIndex - the specific pixel index
 * @param halvedHeight - the halvedHeight of the pixel
 * @param halvedWidth - the halvedWidth of the pixel
 */
export declare const getCornerPixelIndices: (centerPixelIndex: {
    rowIndex: number;
    columnIndex: number;
}, halvedHeight: number, halvedWidth: number) => {
    topLeft: {
        rowIndex: number;
        columnIndex: number;
    };
    topRight: {
        rowIndex: number;
        columnIndex: number;
    };
    bottomLeft: {
        rowIndex: number;
        columnIndex: number;
    };
    bottomRight: {
        rowIndex: number;
        columnIndex: number;
    };
};
/**
 * @summary it will return the overlapping pixel indices of the pixels for an extended selected area
 * @param originalPixels - the original pixels
 * @param originPixelIndex - the origin pixel index
 * @param modifyPixelWidthRatio - the ratio of the width of the modified pixel to the original pixel
 * @param modifyPixelHeightRatio - the ratio of the height of the modified pixel to the original pixel
 * @param gridSquareLength - the length of the grid square
 * @returns the pixel indices of the overlapping pixels
 */
export declare const getOverlappingPixelIndicesForModifiedPixels: (originalPixels: Array<ColorChangeItem>, originPixelIndex: {
    rowIndex: number;
    columnIndex: number;
}, modifyPixelWidthRatio: number, modifyPixelHeightRatio: number, gridSquareLength: number) => ColorChangeItem[];
