import { Point, Rectangle } from '@vertexvis/geometry'; import { Disposable, Listener } from '@vertexvis/utils'; import { VolumeIntersectionQueryMode } from '../../components/viewer-box-query-tool/types'; export type QueryType = 'inclusive' | 'exclusive'; export interface VolumeIntersectionQueryDetails { screenBounds: Rectangle.Rectangle; type: QueryType; } export declare class VolumeIntersectionQueryModel { private mode?; private startPoint?; private endPoint?; private type?; private dragStarted; private dragComplete; private dragCancelled; private screenBoundsChanged; constructor(mode?: VolumeIntersectionQueryMode | undefined); setStartPoint(point: Point.Point): void; setEndPoint(point: Point.Point): void; setMode(mode?: VolumeIntersectionQueryMode): void; complete(): void; cancel(): void; reset(): void; getScreenBounds(): Rectangle.Rectangle | undefined; getType(): QueryType | undefined; onScreenBoundsChanged(listener: Listener): Disposable; onDragStarted(listener: Listener): Disposable; onDragComplete(listener: Listener): Disposable; onDragCancelled(listener: Listener): Disposable; private getQueryDetails; private updateQueryType; }