export class TerrainOverlay {
    /**
     *
     * @param {Vector2} size
     * @constructor
     */
    constructor(size: Vector2);
    /**
     * width is in fraction between 0 and 1, for example: 0.1 represents 10% border between tiles
     * @type {Vector1}
     * @readonly
     */
    readonly borderWidth: Vector1;
    /**
     *
     * @type {Vector2}
     * @readonly
     */
    readonly size: Vector2;
    /**
     *
     * @type {ObservedString}
     */
    tileImage: ObservedString;
    /**
     *
     * @type {Sampler2D}
     */
    sampler: Sampler2D;
    texture: DataTexture;
    /**
     *
     * @type {Context[]}
     */
    stack: Context[];
    /**
     *
     * @param {string} v
     */
    set baseTileImage(v: string);
    /**
     *
     * @returns {string}
     */
    get baseTileImage(): string;
    /**
     * @returns {HTMLCanvasElement}
     */
    get canvas(): HTMLCanvasElement;
    /**
     * Pushes new context onto the stack, allowing you to preserve current state for later
     */
    push(): void;
    /**
     * Pops top context from the stack, restoring previous state
     */
    pop(): void;
    clear(): void;
    update(): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {Vector4} result
     */
    readPoint(x: number, y: number, result: Vector4): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {Vector4} vec4
     */
    paintPointAlphaBlend(x: number, y: number, vec4: Vector4): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     */
    clearPoint(x: number, y: number): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {Vector4} vec4
     */
    paintPoint(x: number, y: number, vec4: Vector4): void;
    /**
     *
     * @param {Uint8Array|number[]} data
     */
    writeData(data: Uint8Array | number[]): void;
    /**
     *
     * @param {HTMLCanvasElement} image
     * @param {number} dx
     * @param {number} dy
     * @param {number} [dWidth]
     * @param {number} [dHeight]
     */
    paintImage(image: HTMLCanvasElement, dx: number, dy: number, dWidth?: number, dHeight?: number): void;
    /**
     *
     * @param {Sampler2D} source
     * @param {number} dx
     * @param {number} dy
     * @param {number} dWidth
     * @param {number} dHeight
     */
    paintSampler(source: Sampler2D, dx: number, dy: number, dWidth: number, dHeight: number): void;
}
import Vector1 from "../../../../core/geom/Vector1.js";
import Vector2 from "../../../../core/geom/Vector2.js";
import ObservedString from "../../../../core/model/ObservedString.js";
import { Sampler2D } from "../../../graphics/texture/sampler/Sampler2D.js";
import { DataTexture } from "three";
declare class Context {
    /**
     *
     * @param {Sampler2D} sampler
     * @param {number} borderWidth
     * @param {string} tileImage
     * @constructor
     */
    constructor(sampler: Sampler2D, borderWidth: number, tileImage: string);
    /**
     *
     * @type {Sampler2D}
     */
    sampler: Sampler2D;
    /**
     *
     * @type {number}
     */
    borderWidth: number;
    /**
     * URL of the tile image
     * @type {string}
     */
    tileImage: string;
}
import Vector4 from '../../../../core/geom/Vector4.js';
export {};
//# sourceMappingURL=TerrainOverlay.d.ts.map