import { vertexvis } from '@vertexvis/frame-streaming-protos';
import { StreamApi } from '@vertexvis/stream-api';
import { UUID } from '@vertexvis/utils';
import { CameraTypeEncoder, FrameDecoder } from '../mappers';
import { SceneViewStateIdentifier } from '../types';
import { ApplySceneViewStateOptions, SceneViewStateFeature } from '.';
export declare class SceneViewStateLoader {
    private stream;
    private decodeFrame;
    private encodeCameraType;
    readonly sceneId: UUID.UUID;
    readonly sceneViewId: UUID.UUID;
    constructor(stream: StreamApi, decodeFrame: FrameDecoder, encodeCameraType: CameraTypeEncoder, sceneId: UUID.UUID, sceneViewId: UUID.UUID);
    applySceneViewState(sceneViewStateId: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier, opts?: ApplySceneViewStateOptions): Promise<vertexvis.protobuf.stream.ILoadSceneViewStateResult | undefined>;
    applyPartialSceneViewState(sceneViewStateId: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier, featuresToApply: SceneViewStateFeature[], opts?: ApplySceneViewStateOptions): Promise<vertexvis.protobuf.stream.ILoadSceneViewStateResult | undefined>;
    private animateToSceneViewState;
}
