export type SpiralGalleryItem = string | { src: string; alt?: string; id?: string | number; crossOrigin?: '' | 'anonymous' | 'use-credentials'; referrerPolicy?: HTMLImageElement['referrerPolicy']; }; export type NormalizedSpiralGalleryItem = { src: string; alt: string; id: string; crossOrigin?: '' | 'anonymous' | 'use-credentials'; referrerPolicy?: HTMLImageElement['referrerPolicy']; }; export type SpiralGalleryConfig = { imageHeight?: number; curvature?: number; gapSize?: number; spiralRadius?: number; spiralTurns?: number; spiralHeight?: number; centerX?: number; centerY?: number; centerZ?: number; cameraFov?: number; cameraY?: number; cameraZ?: number; baseRotationX?: number; baseRotationZ?: number; meshRotationX?: number; minZoom?: number; maxZoom?: number; zoomStep?: number; masterTextureHeight?: number; }; export type SpiralGalleryInertia = { friction?: number; strength?: number; maxSpeed?: number; directionSmoothing?: number; scrollSensitivity?: number; }; type SpiralGalleryRuntimeOptions = { root: HTMLElement; canvas: HTMLCanvasElement; items: readonly NormalizedSpiralGalleryItem[]; config?: SpiralGalleryConfig; inertia?: SpiralGalleryInertia; pixelRatioCap?: number; }; export declare const normalizeSpiralGalleryItems: (items: readonly SpiralGalleryItem[]) => NormalizedSpiralGalleryItem[]; export declare const canUseSpiralGalleryWebGL: () => boolean; export declare class SpiralGalleryRuntime { private readonly root; private readonly canvas; private readonly items; private readonly config; private readonly inertia; private readonly scene; private readonly tiltGroup; private readonly dragRotation; private readonly baseRotation; private readonly previousPointer; private readonly touch; private camera; private renderer; private spiralMesh; private material; private masterTexture; private imageRatios; private resizeObserver; private frameId; private resizeFrameId; private disposed; private isDragging; private scrollOffset; private targetVelocity; private currentVelocity; private wheelAcceleration; private zoomLevel; constructor({ root, canvas, items, config, inertia, pixelRatioCap, }: SpiralGalleryRuntimeOptions); init(): Promise; zoomBy(direction: -1 | 1): void; dispose(): void; private getSize; private rebuildGeometry; private updateTextureOffset; private resize; private scheduleResize; private start; private animate; private updateInertia; private addListeners; private removeListeners; private handleWheel; private handlePointerDown; private handlePointerMove; private handlePointerUp; private handlePointerCancel; private stopDragging; private handleTouchStart; private handleTouchMove; private handleTouchEnd; private applyTilt; } export declare const createSpiralGalleryRuntime: (options: SpiralGalleryRuntimeOptions) => Promise; export {};