import { vertexvis } from '@vertexvis/frame-streaming-protos';
import { Dimensions } from '@vertexvis/geometry';
import { UUID } from '@vertexvis/utils';
import { Animation, FlyTo, FrameCamera, SceneViewStateIdentifier } from '../types';
import { ItemOperation, PmiAnnotationOperation } from './operations';
import { QueryExpression } from './queries';
import { SceneViewStateFeature } from './scene';
export interface BuildSceneOperationContext {
    dimensions: Dimensions.Dimensions;
}
export declare function buildSceneViewStateIdentifier(identifier: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier): Pick<vertexvis.protobuf.stream.ILoadSceneViewStatePayload, 'sceneViewStateId'> | Pick<vertexvis.protobuf.stream.ILoadSceneViewStatePayload, 'sceneViewStateSuppliedId'>;
export declare function buildQueryExpression(query: QueryExpression, context: BuildSceneOperationContext): vertexvis.protobuf.stream.IQueryExpression;
export declare function buildAnnotationQueryExpression(query: QueryExpression, context: BuildSceneOperationContext): vertexvis.protobuf.stream.IPmiAnnotationQueryExpression;
export declare function buildSceneElementOperationOnItem(query: QueryExpression, operations: ItemOperation[], context: BuildSceneOperationContext): vertexvis.protobuf.stream.ISceneElementOperation;
export declare function buildSceneElementOperationOnAnnotation(query: QueryExpression, operations: PmiAnnotationOperation[], context: BuildSceneOperationContext): vertexvis.protobuf.stream.ISceneElementOperation;
export declare function buildFlyToOperation(frameCorrelationId: UUID.UUID, options: FlyTo.FlyToOptions, animation?: Animation.Animation, baseCamera?: FrameCamera.FrameCamera): vertexvis.protobuf.stream.IFlyToPayload;
export declare function toPbSceneViewStateFeatures(features: SceneViewStateFeature[]): vertexvis.protobuf.stream.SceneViewStateFeature[];
