import type Viewport from "../viewports/viewport.js"; export default abstract class ViewState, State extends Record> implements IViewState { private _viewportProps; private _state; makeViewport: (props: Record) => Viewport; constructor(props: Required, state: State, makeViewport: (props: Record) => Viewport); getViewportProps(): Required; getState(): State; abstract applyConstraints(props: Required): Required; abstract shortestPathFrom(viewState: T): Props; abstract panStart(params: { pos: [number, number]; }): T; abstract pan({ pos, startPos }: { pos: [number, number]; startPos?: [number, number]; }): T; abstract panEnd(): T; abstract rotateStart(params: { pos: [number, number]; altitude?: number; }): T; abstract rotate(params: { pos?: [number, number]; deltaAngleX?: number; deltaAngleY: number; }): T; abstract rotateEnd(): T; abstract zoomStart({ pos }: { pos: [number, number]; }): T; abstract zoom({ pos, startPos, scale }: { pos: [number, number]; startPos?: [number, number]; scale: number; }): T; abstract zoomEnd(): T; abstract zoomIn(speed?: number): T; abstract zoomOut(speed?: number): T; abstract moveLeft(speed?: number): T; abstract moveRight(speed?: number): T; abstract moveUp(speed?: number): T; abstract moveDown(speed?: number): T; abstract rotateLeft(speed?: number): T; abstract rotateRight(speed?: number): T; abstract rotateUp(speed?: number): T; abstract rotateDown(speed?: number): T; } export interface IViewState { makeViewport?: (props: Record) => Viewport; getViewportProps(): Record; getState(): Record; shortestPathFrom(viewState: T): Record; panStart(params: { pos: [number, number]; }): T; pan({ pos, startPos }: { pos: [number, number]; startPos?: [number, number]; }): T; panEnd(): T; rotateStart(params: { pos: [number, number]; altitude?: number; }): T; rotate(params: { pos?: [number, number]; deltaAngleX?: number; deltaAngleY?: number; }): T; rotateEnd(): T; zoomStart({ pos }: { pos: [number, number]; }): T; zoom({ pos, startPos, scale }: { pos: [number, number]; startPos?: [number, number]; scale: number; }): T; zoomEnd(): T; zoomIn(speed?: number): T; zoomOut(speed?: number): T; moveLeft(speed?: number): T; moveRight(speed?: number): T; moveUp(speed?: number): T; moveDown(speed?: number): T; rotateLeft(speed?: number): T; rotateRight(speed?: number): T; rotateUp(speed?: number): T; rotateDown(speed?: number): T; } //# sourceMappingURL=view-state.d.ts.map