import type { Layer } from '@deck.gl/core'; import type { Deck, DeckProps } from '@deck.gl/core'; import type { RenderableGroup } from './RenderableGroup'; /** Kompatibel zu deck.gl Deck.setProps */ export interface DeckLike { setProps(props: Partial>): void; } export interface LayerGroupsProps = RenderableGroup> { groups?: ReadonlyArray; } export declare class LayerGroups = RenderableGroup> { private _groups; private _dirty; private _cachedLayers; private _deck; constructor(props?: LayerGroupsProps); get size(): number; get groups(): readonly G[]; getGroup(id: string): G | undefined; hasGroup(id: string): boolean; attachDeck(deck: Deck | DeckLike): void; detachDeck(): void; applyToDeck(options?: { respectExternalChanges?: boolean; }): void; addGroup(group: G): void; addGroups(groups: ReadonlyArray): void; removeGroup(id: string, opts?: { destroy?: boolean; }): void; clear(opts?: { destroy?: boolean; }): void; replaceGroup(group: G, keepPosition?: boolean): void; moveGroup(id: string, toIndex: number): void; setGroupVisible(id: string, visible: boolean, opts?: { respectExternalChanges?: boolean; }): boolean; /** * Entfernt einen Layer mit gegebener ID aus allen Gruppen, die * klassische LayerGroup **unterstützen**. Bei modellbasierten Gruppen * suchst du nach Model-ID und nutzt removeModel(). */ removeLayer(layerId: string, opts?: { removeFromAll?: boolean; respectExternalChanges?: boolean; }): boolean; /** * Convenience: Für modellbasierte Gruppen – LayerModel enabled togglen. * No-Op für klassische LayerGroup. */ setModelEnabled(groupId: string, modelId: string, enabled: boolean, opts?: { apply?: boolean; }): void; withUpdate(fn: (store: this) => void): void; getLayers(options?: { respectExternalChanges?: boolean; }): readonly L[]; markDirty(): void; destroy(opts?: { destroyGroups?: boolean; }): void; }