import type { BoxelDefinition, Material, Pattern, TexturedBox, Texture } from './types';
export type FaceKey = 'top' | 'bottom' | 'north' | 'south' | 'east' | 'west';
export declare function uvToCanvasPixel(u: number, v: number, width: number, height: number): {
    x: number;
    y: number;
};
export declare const buildPatternAscii: (pattern: {
    size: [number, number];
    data: number[];
}) => string[];
export declare function resolveFaceTextureId(box: TexturedBox, face: FaceKey): string | undefined;
export declare function resolveOverlayFaceTextureId(box: TexturedBox, face: FaceKey): string | undefined;
export declare function collectFaceTextureIds(box: TexturedBox): string[];
export declare function collectOverlayFaceTextureIds(box: TexturedBox): string[];
export declare function getFaceKeys(): FaceKey[];
export declare function getTextureMaterialIds(texture: Texture): string[];
export declare function collectTexturedBoxTextures(box: TexturedBox): Set<string>;
export declare function collectTexturedBoxMaterials(box: TexturedBox, textureLookup: Map<string, Texture>): Set<string>;
export declare function collectTexturedBoxPatterns(box: TexturedBox, textureLookup: Map<string, Texture>): Set<string>;
export declare function determineTexturedBoxRenderMode(entity: BoxelDefinition, box: TexturedBox): 'plain' | 'cutout';
export interface TexturedBoxDependencySummary {
    textures: Set<string>;
    materials: Set<string>;
    patterns: Set<string>;
}
export declare function collectTexturedBoxDependencies(box: TexturedBox, textureLookup: Map<string, Texture>): TexturedBoxDependencySummary;
export declare function collectEntityTextureLookup(entity: BoxelDefinition): Map<string, Texture>;
export declare function collectEntityMaterialLookup(entity: BoxelDefinition): Map<string, Material>;
export declare function collectEntityPatternLookup(entity: BoxelDefinition): Map<string, Pattern>;
