import IFile from "../storage/IFile";
import { IEventHandler } from "ste-events";
import IDefinition from "./IDefinition";
import ProjectItem from "../app/ProjectItem";
import Project from "../app/Project";
export type ImageCoords = {
    x1: number;
    y1: number;
    x2: number;
    y2: number;
};
export declare const VibrantVisualsFileExtensionVariants: string[];
export default class TextureDefinition implements IDefinition {
    private _file?;
    private _isLoaded;
    private _isContentProcessed;
    private _width;
    private _height;
    private _errorMessage;
    private _errorProcessing;
    private _imageData;
    private _onLoaded;
    id: string | undefined;
    get width(): number;
    get height(): number;
    get errorMessage(): string;
    get errorProcessing(): boolean;
    get imageData(): Uint8Array<ArrayBufferLike>;
    get data(): Uint8Array<ArrayBufferLike>;
    get isLoaded(): boolean;
    get file(): IFile | undefined;
    get onLoaded(): import("ste-events").IEvent<TextureDefinition, TextureDefinition>;
    set file(newFile: IFile | undefined);
    getPixel(x: number, y: number): {
        r: number;
        g: number;
        b: number;
        a: number;
    };
    get isContentProcessed(): boolean;
    processContent(): Promise<void>;
    unloadContent(): void;
    /**
     * Decode image data (PNG or TGA) to raw RGBA pixels.
     * This is a shared utility method for use by Model2DRenderer, ModelMeshFactory, etc.
     *
     * @param data Raw image file bytes
     * @param fileType File extension ('png' or 'tga')
     * @returns Decoded pixels with width, height, and RGBA data, or undefined if decoding fails
     */
    static decodeToPixels(data: Uint8Array, fileType: string): Promise<{
        width: number;
        height: number;
        pixels: Uint8Array;
    } | undefined>;
    static ensureOnFile(file: IFile, loadHandler?: IEventHandler<TextureDefinition, TextureDefinition>): Promise<TextureDefinition>;
    getReferencePath(): string;
    static canonicalizeTexturePath(projectPath: string | undefined): string;
    static getTexturePath(projectPath: string): string;
    persist(): boolean;
    load(): Promise<void>;
    addChildItems(project: Project, item: ProjectItem): Promise<void>;
}
