import type { GraphicsQuality } from "./settingsModel.js"; /** * Procedural surface detail on loaded models: `"full"` adds mottling, wear, roughness break-up, a * micro-normal and cavity shading; `"lite"` drops the micro-normal; `"off"` compiles the plain material. */ export type SurfaceDetailLevel = "off" | "lite" | "full"; /** Serializable renderer budget selected by the player's graphics tier. */ export interface GraphicsProfile { renderScale: number; shadowMapSize: 512 | 1024 | 2048 | 4096; cascades: 1 | 2 | 3 | 4; drawDistance: number; /** Largest pool one particle effect may allocate. */ particleCap: number; /** Live particles the whole scene may hold across every effect; the VFX library drops lowest-priority effects past it. */ particleBudget: number; /** Anisotropic texture filtering samples; clamped to the GPU maximum. 1 is plain trilinear. */ anisotropy: 1 | 2 | 4 | 8 | 16; postStages: { ao: boolean; bloom: boolean; dof: boolean; smaa: boolean; }; /** Default painted-surface shader on loaded models. */ surfaceDetail: SurfaceDetailLevel; } /** Conservative defaults that preserve the existing high-quality shell behavior. */ export declare const DEFAULT_GRAPHICS_PROFILES: Record; /** Resolve one tier and apply game-authored field and post-stage overrides. */ export declare function resolveGraphicsProfile(quality: GraphicsQuality, overrides?: Partial): GraphicsProfile;