import type { Color } from 'cesium'; import { ILayer } from './i-layer'; export interface I3DTilesLayer extends ILayer { setColor(color: string | Color, opacity?: number): void; setStyle(style: Record): void; } export type AnyLayer = ILayer | I3DTilesLayer; interface CesiumLayerRef { /** interne Layer-ID (dein layerId) */ id: string; /** optionale Basemap-Key (z. B. "osm", "satellite") */ elementId?: string | null; /** Wrapper aus LayerManager */ layer: AnyLayer; } /** * Eine Gruppe verwaltet Sichtbarkeit & Basemap-Filter ihrer Cesium-Layer. * - group.visible = false => Alle Layer der Gruppe unsichtbar. * - group.basemap = "X" => Nur Layer mit elementId==="X" in der Gruppe sichtbar. * - Der ursprüngliche Sichtbarkeitszustand jedes Layers wird gemerkt und bei * Re-Aktivierung wiederhergestellt. */ export declare class CesiumLayerGroup { readonly id: string; private _visible; private _basemap; private _layers; private _originalVisible; private _dirty; constructor(id: string, visible?: boolean); get visible(): boolean; set visible(v: boolean); get basemap(): string | null; set basemap(b: string | null); isDirty(): boolean; addLayer(ref: CesiumLayerRef): void; /** optional zum Nachziehen von elementId (z. B. wenn erst später bekannt) */ setLayerElementId(layerId: string, elementId?: string | null): void; removeLayer(layerId: string): boolean; clear(): void; /** zentrale Logik: Basemap/Visibility anwenden */ apply(): void; } /** * Root-Store für mehrere Cesium-Gruppen. * - Ordnung/Z-Index übernimmst du weiterhin im LayerManager pro Layer. * - Diese Klasse kümmert sich um Gruppensichtbarkeit & Basemap-Filter. */ export declare class CesiumLayerGroups { private _groups; private _dirty; get groups(): readonly CesiumLayerGroup[]; getGroup(id: string): CesiumLayerGroup | undefined; hasGroup(id: string): boolean; ensureGroup(id: string, visible?: boolean): CesiumLayerGroup; addLayerToGroup(groupId: string, visible: boolean, ref: CesiumLayerRef): void; removeLayer(layerId: string, removeFromAll?: boolean): boolean; setGroupVisible(groupId: string, visible: boolean): void; setBasemap(groupId: string, basemap: string | null): void; /** Wendet alle Gruppenregeln an (sichtbar/basemap). */ apply(): void; clear(): void; } export {};