/**
 * @class
 */
export class FogOfWar {
    /**
     *
     * @type {boolean}
     */
    textureNeedsUpdate: boolean;
    /**
     *
     * @type {boolean}
     */
    distanceFieldNeedsUpdate: boolean;
    /**
     *
     * @type {DataTexture|null}
     */
    texture: DataTexture | null;
    /**
     * Resolution scale of FoW versus terrain resolution, higher number makes FoW more detailed
     * @type {Vector1}
     */
    scale: Vector1;
    /**
     * Size of the fog area
     * @type {Vector2}
     */
    size: Vector2;
    color: Vector4;
    /**
     * Contains indices of pixes that are currently being updated
     * @type {RowFirstTable}
     */
    fadeMask: RowFirstTable;
    on: {
        textureChanged: Signal<any, any, any, any, any, any, any, any>;
    };
    /**
     *
     * @type {Sampler2D}
     */
    sampler: Sampler2D;
    /**
     *
     * @type {Sampler2D}
     */
    distanceSampler: Sampler2D;
    /**
     *
     * @param {number} timeDelta
     */
    updateFade(timeDelta: number): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     */
    revealPoint(x: number, y: number): void;
    clear(): void;
    revealAll(): void;
    concealAll(): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number} radius
     */
    reveal(x: number, y: number, radius: number): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number} radius
     */
    conceal(x: number, y: number, radius: number): void;
    dispose(): void;
    updateTexture(): void;
    /**
     *
     * @param {number} timeDelta
     */
    update(timeDelta: number): void;
    /**
     * Compute bounding box of revealed area in grid space, where coordinate system maps to discrete texels of the fog
     * @param {AABB2} result
     */
    computeRevealedGridBoundingRectangle(result: AABB2): void;
    /**
     *
     * @param {number} x
     * @param {number} y
     * @param {number[]} result
     */
    worldToSamplePosition(x: number, y: number, result: number[]): void;
    /**
     *
     * @param {AABB3} aabb
     * @param {Vector3} cameraFocalPoint
     * @param {number} clearance distance to nearest non-occluding cell
     */
    computeAABBVisibility(aabb: AABB3, cameraFocalPoint: Vector3, clearance: number): boolean;
    /**
     * Returns fog clearance from a set of world coordinates
     * @param {number} x world X coordinate
     * @param {number} y world Y coordinate
     * @returns {number} clearance value
     */
    getWorldClearance(x: number, y: number): number;
    rebuildDistanceField(): void;
    rebuildDistanceSampler(): void;
    rebuildSampler(): void;
    /**
     *
     * @param {number} w
     * @param {number} h
     * @param scale
     */
    resize(w: number, h: number, scale: any): void;
}
export namespace FogOfWar {
    let typeName: string;
}
import { DataTexture } from "three";
import Vector1 from "../../../core/geom/Vector1.js";
import Vector2 from "../../../core/geom/Vector2.js";
import Vector4 from "../../../core/geom/Vector4.js";
import { RowFirstTable } from "../../../core/collection/table/RowFirstTable.js";
import Signal from "../../../core/events/signal/Signal.js";
import { Sampler2D } from "../../graphics/texture/sampler/Sampler2D.js";
//# sourceMappingURL=FogOfWar.d.ts.map