import { type GraphicsProfile } from "./graphicsProfile.js"; import { type GraphicsQuality, type SettingsStore } from "./settingsModel.js"; /** The post-processing stages a player can toggle individually on top of the quality tier. */ export type GraphicsPostStage = keyof GraphicsProfile["postStages"]; /** Ordered stage list used to build settings rows. */ export declare const GRAPHICS_POST_STAGES: readonly GraphicsPostStage[]; /** Player-facing labels for each post stage. */ export declare const GRAPHICS_POST_STAGE_LABELS: Record; /** Setting id that stores one stage toggle (`graphics.post.`). */ export declare function graphicsPostStageSettingId(stage: GraphicsPostStage): string; /** Lowest player render scale; the value is the device-pixel-ratio cap handed to the canvas. */ export declare const RENDER_SCALE_MIN = 0.5; /** Highest player render scale. */ export declare const RENDER_SCALE_MAX = 2; /** Render-scale slider increment. */ export declare const RENDER_SCALE_STEP = 0.05; /** Texture-filtering choices offered to the player; the value is the anisotropy sample count. */ export declare const ANISOTROPY_OPTIONS: readonly { value: string; label: string; }[]; /** Per-tier profile overrides a game authors with `defineGame({ graphics })`. */ export type GraphicsProfileOverrides = Partial>>; /** The resolved player graphics choice: the tier plus the profile after per-stage and render-scale overrides. */ export interface GraphicsSettingsState { quality: GraphicsQuality; profile: GraphicsProfile; } /** The stored quality tier, falling back to the default when the value is missing or unknown. */ export declare function readGraphicsQuality(store: Pick): GraphicsQuality; /** * Resolve the player's graphics state from a settings store. The tier profile (with the game's * overrides) supplies every default; a stored render scale or stage toggle replaces its field. */ export declare function readGraphicsSettings(store: Pick, overrides?: GraphicsProfileOverrides): GraphicsSettingsState; /** * Select a quality tier and re-apply its render scale, texture filtering and stage defaults, so picking a preset * resets the individual overrides instead of leaving stale toggles behind. */ export declare function applyGraphicsQuality(store: Pick, quality: GraphicsQuality, overrides?: GraphicsProfileOverrides): GraphicsProfile; /** * Wrap a settings store so the graphics tier reads as `quality` for this session only: every * graphics field resolves from that tier until the player changes it, and nothing is persisted. * Capture hosts use it (`?quality=low`) to render cheap iteration shots without leaving the * draft tier in the browser profile for the next full-quality shot. */ export declare function withGraphicsQualityOverride(store: SettingsStore, quality: GraphicsQuality, overrides?: GraphicsProfileOverrides): SettingsStore; /** Parse a `?quality=` value into a graphics tier, or null when absent or unknown. */ export declare function parseGraphicsQuality(raw: string | null | undefined): GraphicsQuality | null;