import { Matrix4 } from '@vertexvis/geometry';
import { Vector3 } from '@vertexvis/geometry';
import { Color } from '@vertexvis/utils';
import { ReglComponent } from '../../../lib/webgl/regl-component';
export interface DrawableElementColors {
    arrow?: Color.Color | string;
    plane?: Color.Color | string;
    outline?: Color.Color | string;
}
export interface DrawableElementOpacities {
    plane?: string | number;
}
export declare const DEFAULT_POINT_SIZE_SCALAR = 0.4;
export declare const DEFAULT_PLANE_SIZE_SCALAR = 5;
export declare const DEFAULT_PLANE_OPACITY = 0.75;
export declare class HitIndicator extends ReglComponent {
    private axis?;
    private arrow?;
    private point?;
    private plane?;
    private transform?;
    private normal?;
    private arrowFillColor?;
    private planeFillColor?;
    private outlineColor?;
    private planeOpacity?;
    constructor(canvasElement: HTMLCanvasElement, colors?: DrawableElementColors, opacities?: DrawableElementOpacities);
    updateTransformAndNormal(transform?: Matrix4.Matrix4, normal?: Vector3.Vector3): void;
    updateColors(colors: DrawableElementColors): void;
    updateOpacities(opacities: DrawableElementOpacities): void;
    protected hasData(): boolean;
    protected createOrUpdateElements(): void;
    private createElements;
    private updateElements;
    private getPlaneOpacity;
}
