import { IBitmapDrawable } from "./IBitmapDrawable";
import { ColorTransform } from "../geom/ColorTransform";
import { Matrix } from "../geom/Matrix";
import { Point } from "../geom/Point";
import { Rectangle } from "../geom/Rectangle";
import { ByteArray } from "../utils/ByteArray";
import { Image } from "canvaskit-wasm";
export declare class BitmapData implements IBitmapDrawable {
    __data: Uint8ClampedArray;
    image: Image;
    private imageData;
    imageSource: CanvasImageSource;
    private _lock;
    ctx: CanvasRenderingContext2D;
    private _transparent;
    private _fillColor;
    private _width;
    private _height;
    private _rgba;
    constructor(width: number, height: number, transparent?: boolean, fillColor?: number);
    fromImage(img: any, dx?: number, dy?: number, opt_dw?: number, opt_dy?: number): void;
    clone(): BitmapData;
    get width(): number;
    get height(): number;
    get transparent(): boolean;
    get rect(): Rectangle;
    getPixel(x: number, y: number): number;
    getPixel32(x: number, y: number): number;
    setPixel(x: number, y: number, color: number): void;
    setPixel32(x: number, y: number, color: number): void;
    colorTransform(rect: Rectangle, ct: ColorTransform): void;
    compare(b: BitmapData): Object;
    copyChannel(b: BitmapData, r: Rectangle, p: Point, param4: number, param5: number): void;
    copyPixels(sourceBitmapData: BitmapData, sourceRect: Rectangle, destPoint: Point, alphaBitmapData?: BitmapData, alphaPoint?: Point, mergeAlpha?: boolean): void;
    dispose(): void;
    draw(source: IBitmapDrawable, matrix?: Matrix, colorTransform?: ColorTransform, blendMode?: string, clipRect?: Rectangle, smoothing?: boolean): void;
    drawWithQuality(source: IBitmapDrawable, matrix?: Matrix, colorTransform?: ColorTransform, blendMode?: string, clipRect?: Rectangle, smoothing?: boolean, quality?: string): void;
    fillRect(rect: Rectangle, fillColor: number): void;
    floodFill(param1: number, param2: number, param3: number): void;
    getColorBoundsRect(param1: number, param2: number, param3?: boolean): Rectangle;
    getPixels(param1: Rectangle): ByteArray;
    copyPixelsToByteArray(param1: Rectangle, param2: ByteArray): void;
    getVector(param1: Rectangle): number[];
    hitTest(param1: Point, param2: number, param3: Object, param4?: Point, param5?: number): boolean;
    merge(param1: BitmapData, param2: Rectangle, param3: Point, param4: number, param5: number, param6: number, param7: number): void;
    noise(randomSeed: number, low?: number, high?: number, channelOptions?: number, grayScale?: boolean): void;
    paletteMap(param1: BitmapData, param2: Rectangle, param3: Point, param4?: any[], param5?: any[], param6?: any[], param7?: any[]): void;
    private static perm;
    perlinNoise(baseX: number, baseY: number, numOctaves: number, randomSeed: number, stitch: boolean, fractalNoise: boolean, channelOptions?: number, grayScale?: boolean, offsets?: any[]): void;
    pixelDissolve(param1: BitmapData, param2: Rectangle, param3: Point, param4?: number, param5?: number, param6?: number): number;
    scroll(param1: number, param2: number): void;
    setPixels(param1: Rectangle, param2: ByteArray): void;
    setVector(param1: Rectangle, param2: number[]): void;
    threshold(param1: BitmapData, param2: Rectangle, param3: Point, param4: string, param5: number, param6?: number, param7?: number, param8?: boolean): number;
    lock(): void;
    unlock(param1?: Rectangle): void;
    histogram(param1?: Rectangle): any[];
    encode(param1: Rectangle, param2: Object, param3?: ByteArray): ByteArray;
}
