import { Point } from '@vertexvis/geometry';
import { DrawFramePayload } from '@vertexvis/stream-api';
import { Color } from '@vertexvis/utils';
import { PointToPointHitTester } from '../components/viewer-measurement-distance/hitTest';
import { PointToPointHitProvider } from '../components/viewer-measurement-distance/interactions';
import { RaycasterLike } from '../lib/scenes/raycaster';
import { DepthBuffer, FeatureMap, Frame, FrameCameraBase, ImageAttributesLike, StencilBuffer, Viewport } from '../lib/types';
export declare const drawFramePayloadPerspective: DrawFramePayload;
export declare const drawFramePayloadOrthographic: DrawFramePayload;
export declare function copyDrawFramePayloadPerspective(payload: DrawFramePayload, partial: Partial<DrawFramePayload>): DrawFramePayload;
export declare function makePerspectiveFrame(payload?: DrawFramePayload): Frame;
export declare function makeOrthographicFrame(): Frame;
export declare function makeImagePng(width: number, height: number): Uint8Array;
export declare function makeDepthImagePng(width: number, height: number, value?: number): Uint8Array;
export declare function makeDepthImageBytes(width: number, height: number, value?: number): Uint16Array;
export declare function makeDepthBuffer(width: number, height: number, value?: number, camera?: FrameCameraBase): DepthBuffer;
export declare function makeStencilImageBytes(width: number, height: number, fill: (pixel: Point.Point) => number): Uint8Array;
export declare function makeStencilBuffer(width: number, height: number, fill: (pixel: Point.Point) => number, depthBuffer?: DepthBuffer): StencilBuffer;
export declare function makeFeatureMap(width: number, height: number, fill: (pixel: Point.Point) => Color.Color): FeatureMap;
export declare function makeFeatureMapBytes(width: number, height: number, fill: (pixel: Point.Point) => Color.Color): Uint8Array;
export declare function makeImageAttributes(width: number, height: number): ImageAttributesLike;
export declare function makeHitTester({ stencilBuffer, depthBuffer, viewport, camera, }?: {
    stencilBuffer?: StencilBuffer;
    depthBuffer?: DepthBuffer;
    viewport?: Viewport;
    camera?: FrameCameraBase;
}): PointToPointHitTester;
export declare function makeRaycaster(): RaycasterLike;
export declare function makeHitProvider({ hitTester, raycaster, }: {
    hitTester?: PointToPointHitTester;
    raycaster?: RaycasterLike;
}): PointToPointHitProvider;
