import { Point } from '@vertexvis/geometry';
import type { DecodedPng } from 'fast-png';
import { EntityType } from './entities';
import { FrameImageLike, ImageAttributesLike } from './frame';
/**
 * A `FeatureMap` contains metadata about the location of entities and features
 * rendered in a scene. This metadata includes any surfaces, edges, cross
 * sections and BREP.
 */
export declare class FeatureMap implements FrameImageLike {
    private readonly pixels;
    readonly imageAttr: ImageAttributesLike;
    /**
     * Constructor.
     *
     * @param pixels The PNG containing feature information of a frame.
     * @param imageAttr The attributes of the feature map image.
     */
    constructor(pixels: Uint8Array, imageAttr: ImageAttributesLike);
    /**
     * Constructs a new `FeatureMap` from a decoded PNG.
     *
     * @param png The decoded PNG data.
     * @param imageAttr The image attributes of the frame.
     * @returns A new feature map.
     */
    static fromPng(png: Pick<DecodedPng, 'data' | 'width' | 'height' | 'channels'>, imageAttr: ImageAttributesLike): FeatureMap;
    /**
     * Returns the type of entity at the given frame location. If no entity is
     * found, then `undefined` is returned.
     *
     * @param point The point to query.
     * @returns The type of entity at the given location, or `undefined` if no
     * entity exists.
     */
    getEntityType(point: Point.Point): EntityType;
    private getColor;
}
