import { Group } from "ol/layer"; import { MapModel } from "../model/MapModel"; import { InternalConstructorTag } from "../utils/InternalConstructorTag"; import { AbstractLayer } from "./AbstractLayer"; import { GroupLayerCollection } from "./group/GroupLayerCollection"; import { ATTACH_TO_MAP, DETACH_FROM_MAP, LayerDependencies } from "./shared/internals"; import { LayerConfig } from "./shared/LayerConfig"; import { Layer } from "./unions"; /** * Configuration options to construct a {@link GroupLayer}. * * @group Layers */ export interface GroupLayerConfig extends LayerConfig { /** * List of layers that belong to the new group layer. * * The group layer takes ownership of the given layers: they will be destroyed when the parent is destroyed. * A layer must have a unique parent: it can only be added to the map or a single group layer. */ layers: Layer[]; } /** * Represents a group of layers. * * A group layer contains a collection of {@link Layer} children. * Groups can be nested to form a hierarchy. * * @group Layers */ export declare class GroupLayer extends AbstractLayer { #private; /** * @deprecated Prefer using {@link LayerFactory.create} instead of calling the constructor directly */ constructor(config: GroupLayerConfig); /** * NOTE: Do not use this overload. Use {@link LayerFactory.create} instead. * * @internal */ constructor(config: GroupLayerConfig, deps: LayerDependencies, internalTag: InternalConstructorTag); get type(): "group"; get legend(): undefined; get olSource(): undefined; /** * Layers contained in this group. */ get layers(): GroupLayerCollection; get sublayers(): undefined; /** * Raw OpenLayers group instance. * * **Warning:** Do not manipulate the collection of layers in this group directly, changes are not synchronized! */ get olLayer(): Group; /** @internal */ [ATTACH_TO_MAP](map: MapModel): void; /** @internal */ [DETACH_FROM_MAP](): void; }