import { vertexvis } from '@vertexvis/frame-streaming-protos';
import { Mapper as M } from '@vertexvis/utils';
import { Token } from '../token';
import { CrossSectioning, Frame, FrameCamera, ImageAttributesLike, Orientation } from '../types';
export declare const fromPbPerspectiveCamera: M.Func<vertexvis.protobuf.stream.IPerspectiveCamera, FrameCamera.PerspectiveFrameCamera>;
export declare const fromPbOrthographicCamera: M.Func<vertexvis.protobuf.stream.IOrthographicCamera, FrameCamera.OrthographicFrameCamera>;
export declare const fromPbCamera: M.Func<vertexvis.protobuf.stream.ICamera, FrameCamera.FrameCamera>;
export declare const fromPbSectionPlane: M.Func<vertexvis.protobuf.stream.ISectionPlane, CrossSectioning.SectionPlane>;
export declare const fromPbCrossSectioning: M.Func<vertexvis.protobuf.stream.ICrossSectioning, CrossSectioning.CrossSectioning>;
export declare function fromPbFrame(worldOrientation: Orientation): M.Func<vertexvis.protobuf.stream.IDrawFramePayload, Frame>;
export type FrameDecoder = M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IDrawFramePayload, Frame>;
export declare function fromPbFrameOrThrow(worldOrientation: Orientation): FrameDecoder;
export declare const fromPbWorldOrientation: M.Func<vertexvis.protobuf.stream.IOrientation | null | undefined, Orientation>;
export declare const fromPbWorldOrientationOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IOrientation | null | undefined, Orientation>;
export declare const fromPbStencilBuffer: M.Func<vertexvis.protobuf.stream.IStreamResponse, {
    stencilBuffer: Uint8Array;
    depthBuffer: Uint8Array;
    imageAttributes: ImageAttributesLike;
}>;
export declare const fromPbStencilBufferOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IStreamResponse, {
    stencilBuffer: Uint8Array;
    depthBuffer: Uint8Array;
    imageAttributes: ImageAttributesLike;
}>;
export declare const fromPbToken: M.Func<vertexvis.protobuf.stream.IToken, Token>;
export declare const fromPbStartStreamResponse: M.Func<vertexvis.protobuf.stream.IStreamResponse, {
    streamId: string;
    sceneId: string;
    sceneViewId: string;
    sessionId: string;
    worldOrientation: Orientation;
    token: Token;
}>;
export declare const fromPbStartStreamResponseOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IStreamResponse, {
    streamId: string;
    sceneId: string;
    sceneViewId: string;
    sessionId: string;
    worldOrientation: Orientation;
    token: Token;
}>;
export declare const fromPbReconnectResponse: M.Func<vertexvis.protobuf.stream.IStreamResponse, {
    token: Token;
}>;
export declare const fromPbReconnectResponseOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IStreamResponse, {
    token: Token;
}>;
export declare const fromPbRefreshTokenResponse: M.Func<vertexvis.protobuf.stream.IStreamResponse, Token>;
export declare const fromPbRefreshTokenResponseOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IStreamResponse, Token>;
export declare const fromPbSyncTimeResponse: M.Func<vertexvis.protobuf.stream.IStreamResponse, Date>;
export declare const fromPbSyncTimeResponseOrThrow: M.ThrowIfInvalidFunc<vertexvis.protobuf.stream.IStreamResponse, Date>;
