import { Context as Context$1 } from 'apprt-core/TreeWalker'; import { LayerNode, VisitCodes } from './LayerTraverser.js'; import Layer from '@arcgis/core/layers/Layer'; import Map from '@arcgis/core/Map'; import Collection from '@arcgis/core/core/Collection'; import Sublayer from '@arcgis/core/layers/support/Sublayer'; import WMSSublayer from '@arcgis/core/layers/support/WMSSublayer'; type NotifyReason = "added" | "removed" | "moved"; type Context = Context$1 & { change: { name: string; added?: boolean; removed?: boolean; moved?: boolean; } & ({ name: "added"; added: true; } | { name: "removed"; removed: true; } | { name: "moved"; moved: true; }); }; interface LayerObserverOptions { map: Map; layers: Collection; onlyWatching: boolean; notify(layer: LayerNode, context: Context): void; filter(layer: LayerNode, context: Context): undefined | boolean | VisitCodes; } interface LayerObserver { map: Map | undefined; layers: Collection | undefined; start(skipInitial?: boolean): void; stop(skipCleanup?: boolean): void; } declare function createLayerObserver({ map, layers, filter, notify, onlyWatching }?: Partial): LayerObserver; export { createLayerObserver, createLayerObserver as default }; export type { Context, LayerObserver, LayerObserverOptions, NotifyReason };