import type { Vec } from './Type';
import type CustomThreeLayer from '../ThreeLayer/CustomThreeLayer';
interface Options {
    video: HTMLVideoElement;
    videoWidth: number;
    videoHeight: number;
    videoTranslate: Vec;
    canvas: HTMLCanvasElement;
    position: number[];
    altitude?: number;
    rotation?: Vec;
    scale: number | number[];
    angle?: number;
    alwaysFront?: boolean;
    opacity: number;
    zIndex: number;
}
declare class ThreeVideo {
    object: any;
    animations: any;
    layer?: CustomThreeLayer;
    video?: HTMLVideoElement;
    videoMesh: any;
    bgMesh: any;
    canvasTexture?: any;
    videoFrame: number;
    rotateFun: any;
    constructor(layer: CustomThreeLayer);
    init(options: Options, $vue: any): Promise<void>;
    bindAlwaysFront(alwaysFront?: boolean): void;
    unBindAlwaysFront(): void;
    _changeMapRotate(): void;
    addBgCanvas(canvas: HTMLCanvasElement): void;
    videoAnimate(): void;
    cancelCanvasTextureAnimate(): void;
    setScale(scale: number | number[]): void;
    setPosition(position: any): void;
    setRotation(rotation: Vec | undefined): void;
    setVideoTranslate(translate: Vec): void;
    setAltitude(altitude: any): void;
    setAngle(angle?: number): void;
    setOpacity(opacity: number): void;
    setzIndex(zIndex: number): void;
    refresh(): void;
    show(): void;
    hide(): void;
    start(): void;
    pause(): void;
    remove(): void;
    destroy(): void;
}
export default ThreeVideo;
