import { AbstractAdapter, Viewer, TextureData, AdapterConstructor } from '@photo-sphere-viewer/core'; import { Mesh, BufferGeometry, Material, VideoTexture, BoxGeometry, ShaderMaterial } from 'three'; type AbstractVideoPanorama = { source: string | MediaStream | HTMLVideoElement; }; type AbstractVideoAdapterConfig = { /** * automatically start the video * @default false */ autoplay?: boolean; /** * initially mute the video * @default false */ muted?: boolean; }; type AbstractVideoMesh = Mesh; type AbstractVideoTextureData = TextureData; /** * Base video adapters class */ declare abstract class AbstractVideoAdapter extends AbstractAdapter { static readonly supportsDownload = false; protected abstract readonly config: AbstractVideoAdapterConfig; private video; constructor(viewer: Viewer); init(): void; destroy(): void; supportsPreload(): boolean; supportsTransition(): boolean; loadTexture(panorama: AbstractVideoPanorama): Promise; protected switchVideo(texture: VideoTexture): void; setTextureOpacity(mesh: TMesh, opacity: number): void; disposeTexture({ texture }: AbstractVideoTextureData): void; disposeMesh(mesh: AbstractVideoMesh): void; private __removeVideo; private __videoLoadPromise; } /** * Configuration of a cubemap video */ type CubemapVideoPanorama = AbstractVideoPanorama & { /** * if the video is an equiangular cubemap (EAC) * @default true */ equiangular?: boolean; }; /** * Size information of a cubemap panorama */ type CubemapVideoData = { isCubemap: true; equiangular: boolean; }; type CubemapVideoAdapterConfig = AbstractVideoAdapterConfig; type CubemapVideoMesh = Mesh; type CubemapVideoTextureData = TextureData; /** * Adapter for cubemap videos */ declare class CubemapVideoAdapter extends AbstractVideoAdapter { static readonly id = "cubemap-video"; static readonly VERSION: string; protected readonly config: CubemapVideoAdapterConfig; static withConfig(config: CubemapVideoAdapterConfig): [AdapterConstructor, any]; constructor(viewer: Viewer, config: CubemapVideoAdapterConfig); loadTexture(panorama: CubemapVideoPanorama): Promise; createMesh(panoData: CubemapVideoData): CubemapVideoMesh; setTexture(mesh: CubemapVideoMesh, { texture }: CubemapVideoTextureData): void; private __setUVs; } export { CubemapVideoAdapter, type CubemapVideoAdapterConfig, type CubemapVideoData, type CubemapVideoPanorama };