import type { Engine, TextureDataType, TextureSourceOptions } from '@galacean/effects-core';
import { Texture } from '@galacean/effects-core';
import * as THREE from 'three';
/**
 * THREE 抽象纹理类
 */
export declare class ThreeTexture extends Texture {
    /**
     * THREE 纹理对象
     */
    texture: THREE.Texture;
    /**
     * 将 WebGL 纹理过滤器枚举类型映射到 THREE 纹理过滤器枚举类型
     * @param filter - WebGL 纹理过滤器枚举类型
     * @returns THREE 纹理过滤器枚举类型
    */
    static toThreeJsTextureFilter(filter?: GLenum): THREE.TextureFilter;
    /**
     * 将 WebGL 纹理环绕方式枚举类型映射到 THREE 纹理环绕方式枚举类型
     * @param wrap - WebGL 纹理环绕方式枚举类型
     * @returns THREE 纹理环绕方式枚举类型
     */
    static toThreeJsTextureWrap(wrap?: GLenum): THREE.Wrapping;
    /**
     * 构造函数
     * @param data - 纹理数据
     * @param options - 纹理选项
     */
    constructor(engine: Engine, data?: TextureDataType, options?: TextureSourceOptions);
    /**
     * 更新纹理数据
     * @param options - 纹理选项
     */
    updateSource(options: TextureSourceOptions): void;
    /**
     * 组装纹理选项
     * @param options - 纹理选项
     * @returns 组装后的纹理选项
     */
    assembleOptions(options: TextureSourceOptions): TextureSourceOptions;
    /**
     * 释放纹理占用的内存
     */
    dispose(): void;
    /**
     * 通过图层设置创建贴图
     * @param data - 图层设置
     */
    fromData(data: any): void;
    private createTextureByType;
}
