import * as THREE from 'three'; interface LottieAnimationData { readonly w: number; readonly h: number; [key: string]: unknown; } export interface ILottieAnimation { play(): void; pause(): void; stop(): void; setSpeed(speed: number): void; setQuality(quality: number): void; goToAndStop(value: number, isFrame: boolean): void; goToAndPlay(value: number, isFrame: boolean): void; destroy(): void; addEventListener(event: 'DOMLoaded' | 'enterFrame' | 'complete' | 'pause' | 'play', callback: () => void): void; removeEventListener(event: 'DOMLoaded' | 'enterFrame' | 'complete' | 'pause' | 'play', callback: () => void): void; loop: boolean; autoplay: boolean; readonly frameRate: number; readonly totalFrames: number; readonly currentFrame: number; readonly isLoaded: boolean; readonly container: HTMLElement; } export declare class ThreeAnimatedLottieTexture extends THREE.CanvasTexture { animation?: ILottieAnimation | null; constructor(); } declare abstract class LottieLoaderBase extends THREE.Loader { protected _quality: number; animation: ILottieAnimation | null; protected _container: HTMLDivElement | null; constructor(manager?: THREE.LoadingManager); setQuality(value: number): void; protected _loadData(url: string, onProgress?: (event: ProgressEvent) => void): Promise; protected _setupAnimation(data: LottieAnimationData): Promise; abstract loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; dispose(): void; static clearCache(): void; } export declare class LottieCanvasLoader extends LottieLoaderBase { loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; } export declare class LottieLoader extends LottieLoaderBase { readonly texture: ThreeAnimatedLottieTexture; constructor(manager?: THREE.LoadingManager); loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise; dispose(): void; } export {};