import { PNG } from 'pngjs';
import type { Filestore } from '../filestore';
import { type SpriteStore } from './sprite-store';
export declare class Texture {
    static readonly LOW_MEMORY_TEXTURE_SIZE = 64;
    static readonly HIGH_MEMORY_TEXTURE_SIZE = 128;
    private static TEXTURE_SIZE;
    private static TEXTURE_INTENSITY;
    private static pixelsBuffer;
    id: number;
    rgb: number;
    opaque: boolean;
    spriteIds: number[];
    renderTypes: number[];
    anIntArray2138: number[];
    colors: number[];
    direction: number;
    speed: number;
    pixels: number[];
    size: number;
    static setSize(size: number): void;
    static setIntensity(intensity: number): void;
    generatePixels(spriteStore: SpriteStore): boolean;
    animate(gameTick: number): void;
    resetPixels(): void;
    writeToDisk(): Promise<void>;
    /**
     * Converts the Texture into a base64 PNG image.
     */
    toBase64(): Promise<string>;
    /**
     * Converts the Texture into a PNG image and returns the resulting PNG object.
     */
    toPng(): PNG;
}
export declare class TextureStore {
    private fileStore;
    constructor(fileStore: Filestore);
    writeToDisk(): Promise<void>;
    getTexture(id: number): Texture | null;
    getTexturePixels(id: number): number[] | null;
    getTextureRgb(id: number): number;
    isTextureOpaque(id: number): boolean;
    isTextureLowMemory(id: number): boolean;
}
