import type { ReactiveController, ReactiveControllerHost } from 'lit'; import type { ViewportPanBehavior, ViewportPanSession, ViewportPanProposal, ViewportPoint, ViewportTransform, ViewportZoomProposal } from './viewport.types.js'; type ViewportGestureNavigationHost = HTMLElement & ReactiveControllerHost & { readonly _internals: ElementInternals; readonly behaviorPan: ViewportPanBehavior; readonly pannable: boolean; readonly zoomable: boolean; readonly dragThreshold: number; requestPan(proposal: ViewportPanProposal): boolean; requestZoom(proposal: ViewportZoomProposal): boolean; startPan(proposal: ViewportPanProposal): ViewportPanSession | undefined; }; interface ViewportGestureNavigationDelegate { readonly clampScale: (value: number) => number; readonly clientToViewport: (clientX: number, clientY: number) => ViewportPoint; readonly getTransform: () => ViewportTransform; readonly requestAdmittedPinchZoom: (proposal: ViewportZoomProposal) => boolean; } export declare class ViewportGestureNavigationController implements ReactiveController { #private; constructor(host: ViewportGestureNavigationHost, delegate: ViewportGestureNavigationDelegate); hostConnected(): void; hostDisconnected(): void; hostUpdated(): void; rebasePointerSessions(): void; } export {};