import { SkinModelTarget as SkinTarget } from "../skins/Skin";
import TextureDefinition, { ImageCoords } from "../TextureDefinition";
interface TextureSizeData {
    name: string;
    allowedTextures: TextureDefinition | undefined;
    allowedTexturesHighRes: TextureDefinition | undefined;
    geometryName: string;
    segments: readonly ModelSegment[];
}
export type ModelSegment = {
    name: string;
    parts: {
        top: ImageCoords;
        front: ImageCoords;
        left: ImageCoords;
        right: ImageCoords;
        bottom: ImageCoords;
        back: ImageCoords;
    };
};
export default class TextureUtilities {
    private static _custom;
    private static _customSlim;
    private static _isLoaded;
    static getBySize(size: SkinTarget): TextureSizeData;
    static getTextureDefinititionForContent(filePath: string): Promise<TextureDefinition>;
    static load(): Promise<void>;
}
export declare function isRegionVisible(texture: TextureDefinition, area: ImageCoords): boolean;
export declare function getSkinTargetByUniquePixelLocations(texture: TextureDefinition): SkinTarget;
export declare function getSkinTargetFromName(textureName: string): SkinTarget | undefined;
export declare function isHighResolutionSkinPackTexture(textureDefinition: TextureDefinition): boolean;
export declare function isOuterAreaIsBlank(texture: TextureDefinition, size: SkinTarget): Promise<boolean>;
export declare function getSegmentsVisibilities(texture: TextureDefinition, size: SkinTarget): {
    segmentName: string;
    visibilities: {
        top: boolean;
        front: boolean;
        left: boolean;
        right: boolean;
        bottom: boolean;
        back: boolean;
    };
}[];
export {};
