import * as Cesium from 'cesium'; type TextureSource = HTMLVideoElement | HTMLImageElement | HTMLCanvasElement | ImageData; interface CesiumProjectorOptions { projCamPosition?: [number, number, number]; projCamParams?: { fov?: number; aspect?: number; near?: number; far?: number; }; orientationParams?: { azimuthDeg?: number; elevationDeg?: number; rollDeg?: number; }; source?: TextureSource; intensity?: number; opacity?: number; projBias?: number; edgeFeather?: number; isShowHelper?: boolean; videoPlay?: boolean; texture?: any; cropRect?: [number, number, number, number]; quadCorners?: [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; showFarPlane?: boolean; } type CesiumProjectorTool = { update: (frameState: any) => void; destroy: () => void; isDestroyed: () => boolean; azimuthDeg: number; elevationDeg: number; rollDeg: number; opacity: number; intensity: number; edgeFeather: number; projBias: number; aspect: number; fov: number; isShowHelper: boolean; cameraPosition: [number, number, number]; far: number; near: number; source: TextureSource; cropRect: [number, number, number, number]; quadCorners: [ [ number, number ], [ number, number ], [ number, number ], [ number, number ] ]; showFarPlane: boolean; }; declare function createCesiumVideoProjector(viewer: Cesium.Viewer, opts: CesiumProjectorOptions): CesiumProjectorTool; export { type CesiumProjectorOptions, type CesiumProjectorTool, type TextureSource, createCesiumVideoProjector };