import { Context } from 'apprt-core/TreeWalker'; import Collection from '@arcgis/core/core/Collection'; import Layer from '@arcgis/core/layers/Layer'; import Sublayer from '@arcgis/core/layers/support/Sublayer'; import WMSSublayer from '@arcgis/core/layers/support/WMSSublayer'; import Map from '@arcgis/core/Map'; interface LayerTraverser { traverse(localOptions?: Partial): void; } type LayerLike = Layer | Sublayer | WMSSublayer | Map | { layers: LayerNode[] | Collection; }; type LayerNode = LayerLike & { children?: any; }; interface LayerTraverserOptions { map: Map; layer: LayerNode; layers: LayerNode[] | Collection; includeRoot: boolean; filter(layer: LayerNode, context: Context): boolean | VisitCodes; action(layer: LayerNode, context: Context): void; } declare enum VisitCodes { TERMINATE = "TERMINATE", SKIP_SUBTREE = "SKIP_SUBTREE" } declare function createLayerTraverser(globalOpts?: Partial): LayerTraverser; export { VisitCodes, createLayerTraverser, createLayerTraverser as default }; export type { LayerNode, LayerTraverser, LayerTraverserOptions };