import { Container } from 'pixi.js'; import type { Zone, District } from '@world-forge/schema'; import type { DiagnosticInfo } from './diagnostics.js'; export interface ZoneRenderOptions { tileSize: number; selectedZoneId?: string; hoveredZoneId?: string; } export declare class ZoneOverlayRenderer { container: Container; private zones; private districts; private opts; private destroyed; /** INF-FT-002: toggle for elevation visualization cues (drop shadow, sunken tint, dashed multi-level outline). */ private showElevation; constructor(opts: ZoneRenderOptions); update(zones: Zone[], districts: District[], opts?: Partial): void; /** * INF-FT-002: Toggle 2.5D elevation visualization cues. * Default is `true`. When `false`, no drop shadows, sunken tints, or dashed * multi-level outlines are drawn — the renderer falls back to the flat 2D look. * Call `update()` afterward to re-render with the new flag. */ setShowElevation(enabled: boolean): void; /** * INF-A-008: Tear down the renderer and release all PixiJS resources. * Destroys the container and every Graphics/Text child recursively. * After calling destroy(), subsequent update() calls are no-ops (with a warning). * Idempotent — safe to call multiple times. */ destroy(): void; /** * INF-B-008: Lifecycle observability. Safe to call at any time, including * after destroy(). Never mutates state. */ getDiagnostics(): DiagnosticInfo; /** * INF-FT-002: Draw a dashed outline around a rect on the given Graphics. * Used to indicate multi-level zones (elevationRange floor !== ceiling). * Each dash is drawn as its own stroked line segment along the perimeter. */ private drawDashedRect; private getDistrictColor; private render; } //# sourceMappingURL=zone-renderer.d.ts.map