import { ArxTextureContainer } from 'arx-convert/types';
import { Expand } from 'arx-convert/utils';
import { Texture as ThreeJsTextue } from 'three';
import { Settings } from './Settings.js';
export type TextureConstructorProps = {
    filename: string;
    /**
     * whether the texture is from the main game or a custom added file
     *
     * default value is true (meaning that the texture is from the game)
     */
    isNative?: boolean;
    width?: number;
    height?: number;
    size?: number;
    /**
     * this path is relative to the project's "assets" folder
     *
     * default value is "graph/obj3d/texture"
     */
    sourcePath?: string;
    /**
     * default value is false
     */
    isInternalAsset?: boolean;
};
export declare const SIZE_UNKNOWN = -1;
export declare const NO_TEXTURE_CONTAINER = 0;
export declare class Texture extends ThreeJsTextue {
    static targetPath: string;
    alreadyMadeTileable: boolean;
    filename: string;
    isNative: boolean;
    _width: number;
    _height: number;
    sourcePath?: string;
    isInternalAsset: boolean;
    constructor(props: TextureConstructorProps);
    clone(): this;
    static fromCustomFile(props: Expand<Omit<TextureConstructorProps, 'isNative'>>): Texture;
    static fromArxTextureContainer(texture: ArxTextureContainer): Texture;
    private getFilename;
    getWidth(settings: Settings): Promise<number>;
    getHeight(settings: Settings): Promise<number>;
    /**
     * this also gives value to this._width and this._height
     * if any of them is SIZE_UNKNOWN
     */
    isTileable(settings: Settings): Promise<boolean>;
    /**
     * default value for needsToBeTileable is false
     */
    exportSourceAndTarget(settings: Settings, needsToBeTileable?: boolean, _dontCatchTheError?: boolean): Promise<[string, string]>;
    private makeCopy;
    private makeTileable;
    /**
     * compares filenames of textures without the extensions
     * comparision is case insensitive
     *
     * For example:
     *  - texture.jpg == TEXTURE.JPG
     *  - texture.bmp == texture.jpg
     */
    equals(texture: Texture | string): boolean;
    equalsAny(textures: (Texture | string)[]): boolean;
    static get alpha(): Texture;
    static get stoneHumanPaving(): Texture;
    static get stoneHumanPaving1(): Texture;
    static get aliciaRoomMur01(): Texture;
    static get aliciaRoomMur02(): Texture;
    static get waterCavewater(): Texture;
    static get l1DragonStoneGround01(): Texture;
    static get l1DragonIceGround08(): Texture;
    static get l1DragonSpideLime1Nocol(): Texture;
    static get l1PrisonStoneGridl02(): Texture;
    static get l1PrisonSandGround01(): Texture;
    static get l1TempleStoneWall03(): Texture;
    static get l2CavesRustyItem01(): Texture;
    static get l2TrollStoneGround04(): Texture;
    static get l2TrollWoodPillar08(): Texture;
    static get l2GobelStoneFloor02(): Texture;
    static get l2GobelStoneCenter(): Texture;
    static get l3DissidWetGround01(): Texture;
    static get l3DissidStoneGround09(): Texture;
    static get l3DissidStoneGround10(): Texture;
    static get l3DissidIronWall02(): Texture;
    static get l3DissidStoneWall03(): Texture;
    static get l3DissidStoneTrans01(): Texture;
    static get l3DissidWoodFabric03(): Texture;
    static get l3DissidWoodFabric04(): Texture;
    static get l4YlsideStoneGround01(): Texture;
    static get l4DwarfIronBoard02(): Texture;
    static get l4DwarfWoodBoard02(): Texture;
    static get l5CavesGravelGround05(): Texture;
    static get l6RatmenFleshWall03(): Texture;
    static get l7DwarfMetalPlate10(): Texture;
    static get stoneHumanStoneWall(): Texture;
    static get stoneHumanStoneWall1(): Texture;
    static get stoneHumanStoneWall2(): Texture;
    static get stoneHumanAkbaa2F(): Texture;
    static get stoneHumanAkbaa4F(): Texture;
    static get stoneHumanPriest4(): Texture;
    static get itemFishingPole2(): Texture;
    static get itemRope(): Texture;
    static get fixinterHeavyCatacombDoor(): Texture;
    static get stoneGroundCavesWet05(): Texture;
    static get glassGlass01(): Texture;
    static get itemCheese(): Texture;
    static get itemRuneAam(): Texture;
    static get missingTexture(): Texture;
    static get uvDebugTexture(): Texture;
    static get missingInventoryIcon(): Texture;
}
