import { BaseLayer } from "./BaseLayer";
import { ColorChangeItem, DottingData, LayerProps, PixelModifyItem } from "./types";
import { DottingDataLayer } from "../../helpers/DottingDataLayer";
export default class DataLayer extends BaseLayer {
    private gridSquareLength;
    private layers;
    private currentLayer;
    private defaultPixelColor;
    private capturedImageBitmap;
    private capturedImageBitmapScale;
    private offscreenCanvas;
    constructor({ canvas, layers, }: {
        canvas: HTMLCanvasElement;
        layers?: Array<LayerProps>;
    });
    getColumnCount(): number;
    getRowCount(): number;
    getGridIndices(): import("./types").GridIndices;
    getDimensions(): {
        columnCount: number;
        rowCount: number;
    };
    getData(): DottingData;
    getLayer(layerId: string): DottingDataLayer;
    getLayerIndex(layerId: string): number;
    getLayers(): DottingDataLayer[];
    createLayer(layerId: string, data?: Array<Array<PixelModifyItem>>): DottingDataLayer;
    getCopiedData(): Map<any, any>;
    getCurrentLayer(): DottingDataLayer;
    hideLayer(layerId: string): void;
    showLayer(layerId: string): void;
    isolateLayer(layerId: string): void;
    showAllLayers(): void;
    reorderLayersByIds(layerIds: Array<string>): void;
    /**
     * @description Sets the current layer to the layer with the given id
     * @param layerId The layer id of the layer
     */
    setCurrentLayer(layerId: string): void;
    setData(data: DottingData, layerId?: string): void;
    setLayers(layers: Array<LayerProps>): void;
    setGridSquareLength(length: number): void;
    setDefaultPixelColor(color: string): void;
    getCapturedImageBitmap(): ImageBitmap;
    /**
     * @description Updates the pixel colors of the given data
     *              Different from colorPixels, this method does not add rows or columns
     * @param data The data to update
     * @param layerId The layer id of the layer to update
     */
    updatePixelColors(data: Array<PixelModifyItem>, layerId?: string): Array<ColorChangeItem>;
    colorPixels(data: Array<PixelModifyItem>, layerId?: string): {
        dataForAction: ColorChangeItem[];
        totalAddedColumnIndices: number[];
        totalAddedRowIndices: number[];
    };
    erasePixels(data: Array<{
        rowIndex: number;
        columnIndex: number;
    }>, layerId?: string): {
        dataForAction: ColorChangeItem[];
    };
    addRow(rowIndex: number): {
        validRowIndex: any;
    };
    addColumn(columnIndex: number): {
        validColumnIndex: any;
    };
    deleteRow(rowIndex: number): {
        swipedPixels: PixelModifyItem[];
        validRowIndex: any;
    };
    deleteColumn(columnIndex: number): {
        swipedPixels: PixelModifyItem[];
        validColumnIndex: any;
    };
    addGridIndices({ rowIndicesToAdd, columnIndicesToAdd, }: {
        rowIndicesToAdd: Array<number>;
        columnIndicesToAdd: Array<number>;
    }): {
        validRowIndices: number[];
        validColumnIndices: number[];
    };
    clear(): {
        layerId: string;
        data: Array<PixelModifyItem>;
    }[];
    deleteGridIndices({ rowIndicesToDelete, columnIndicesToDelete, }: {
        rowIndicesToDelete: Array<number>;
        columnIndicesToDelete: Array<number>;
    }): {
        swipedPixels: PixelModifyItem[];
        validColumnIndices: number[];
        validRowIndices: number[];
    };
    updateCapturedImageBitmap(): void;
    render(): {
        rowKeys: number[];
        columnKeys: number[];
    };
    renderImageBitmap(): void;
}
