import * as _angular_core from '@angular/core'; import { InjectionToken, OnInit, ElementRef } from '@angular/core'; import OLMap from 'ol/Map'; import { OlFeature } from '@angular-helpers/openlayers/core'; declare class OlZoomControlComponent { private mapService; private zoneHelper; delta: _angular_core.InputSignal; duration: _angular_core.InputSignal; private control?; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OlAttributionControlComponent { private mapService; private zoneHelper; collapsible: _angular_core.InputSignal; collapsed: _angular_core.InputSignal; private control?; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OlScaleLineControlComponent { private mapService; private zoneHelper; units: _angular_core.InputSignal<"metric" | "imperial" | "nautical" | "us">; bar: _angular_core.InputSignal; steps: _angular_core.InputSignal; private control?; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OlFullscreenControlComponent { private mapService; private zoneHelper; source: _angular_core.InputSignal; label: _angular_core.InputSignal; labelActive: _angular_core.InputSignal; tipLabel: _angular_core.InputSignal; private control?; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Interface for map service that rotate control needs * Implement this or provide your OlMapService using this token */ interface RotateControlMapService { getMap(): OLMap | null; onReady(callback: (map: OLMap) => void): void; } /** * Injection token for map service used by rotate control * Consumers should provide their OlMapService using this token: * ```ts * { provide: ROTATE_CONTROL_MAP_SERVICE, useExisting: OlMapService } * ``` */ declare const ROTATE_CONTROL_MAP_SERVICE: InjectionToken; declare class OlRotateControlComponent { private mapService; private zoneHelper; autoHide: _angular_core.InputSignal; duration: _angular_core.InputSignal; tipLabel: _angular_core.InputSignal; private control?; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Item representing a layer in the layer switcher UI */ interface LayerSwitcherItem { /** Unique identifier for the layer */ id: string; /** Display name for the layer */ name: string; /** Type of the layer */ type: 'vector' | 'tile' | 'image' | 'heatmap'; /** Whether the layer is currently visible */ visible: boolean; /** Opacity of the layer (0-1) */ opacity: number; } /** * Position options for the layer switcher control */ type LayerSwitcherPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; /** * A reusable layer switcher control that displays all layers * and allows toggling their visibility. * * @usageNotes * ```html * * * ``` */ declare class OlLayerSwitcherComponent implements OnInit { position: _angular_core.InputSignal<"top-left" | "top-right" | "bottom-left" | "bottom-right">; layers: _angular_core.InputSignal; collapsible: _angular_core.InputSignal; showOpacity: _angular_core.InputSignal; startCollapsed: _angular_core.InputSignal; visibilityChange: _angular_core.OutputEmitterRef<{ id: string; visible: boolean; }>; opacityChange: _angular_core.OutputEmitterRef<{ id: string; opacity: number; }>; protected isCollapsed: _angular_core.WritableSignal; ngOnInit(): void; toggleCollapsed(): void; toggleLayer(id: string): void; setOpacity(id: string, event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Configuration for a basemap (background layer) */ interface BasemapConfig { /** Unique identifier for the basemap */ id: string; /** Display name for the basemap */ name: string; /** Type of tile source */ type: 'osm' | 'xyz' | 'wms'; /** URL template for XYZ/WMS sources */ url?: string; /** Additional parameters for WMS requests */ params?: Record; /** Attribution text */ attributions?: string | string[]; /** Optional icon/emoji */ icon?: string; } /** * Position options for the basemap switcher control */ type BasemapSwitcherPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; /** * A basemap switcher control that allows switching between * different tile providers without page refresh. * * @usageNotes * ```html * * * ``` */ declare class OlBasemapSwitcherComponent { basemaps: _angular_core.InputSignal; activeBasemap: _angular_core.InputSignal; position: _angular_core.InputSignal; basemapChange: _angular_core.OutputEmitterRef; protected isExpanded: _angular_core.WritableSignal; toggleExpanded(): void; switchBasemap(basemap: BasemapConfig): void; getActiveBasemapName(): string; getDefaultIcon(basemap: BasemapConfig): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type ControlPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top-center' | 'bottom-center' | 'left-center' | 'right-center'; interface ControlConfig { position?: ControlPosition; className?: string; } declare class OlGeolocationControlComponent { private mapService; private zoneHelper; private destroyRef; position: _angular_core.InputSignal; trackingChange: _angular_core.OutputEmitterRef; controlElement: _angular_core.Signal>; protected tracking: _angular_core.WritableSignal; private control?; private geolocation?; private positionFeature?; private accuracyFeature?; private layer?; constructor(); toggleTracking(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OlControlService { addCustomControl(_element: HTMLElement, _position: ControlPosition): void; removeCustomControl(_element: HTMLElement): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Provides control services and configures the rotate control map service alias. * Requires OlMapService to be provided at the application level. */ declare function withControls(): OlFeature<'controls'>; declare function provideControls(): OlFeature<'controls'>; type TimelinePosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'; /** * A premium, reactive visual timeline component for OpenLayers. * Orchestrates time-series animations by binding directly to OlTimeService. * * Uses native controls, CSS grid/flex layouts, and a sleek glassmorphic theme. * Completely free of CommonModule or FormsModule dependencies for maximum performance. * * @usageNotes * ```html * * * ``` */ declare class OlTimelineComponent { private timeService; /** Start bounds of time-series (Epoch ms) */ startTime: _angular_core.InputSignal; /** End bounds of time-series (Epoch ms) */ endTime: _angular_core.InputSignal; /** Default speed multiplier (e.g. 1, 5, 10, 60, 3600) */ playSpeed: _angular_core.InputSignal; /** Loop playback when reaching endTime */ loop: _angular_core.InputSignal; /** Position overlay alignment */ position: _angular_core.InputSignal; /** Custom label formatter */ formatLabel: _angular_core.InputSignal<(time: number) => string>; /** Outputs */ timeChange: _angular_core.OutputEmitterRef; playStateChange: _angular_core.OutputEmitterRef; /** Computeds binding directly to OlTimeService */ currentTime: _angular_core.Signal; isPlaying: _angular_core.Signal; speed: _angular_core.Signal; formattedTime: _angular_core.Signal; constructor(); togglePlay(): void; onScrub(event: Event): void; onSpeedChange(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { OlAttributionControlComponent, OlBasemapSwitcherComponent, OlControlService, OlFullscreenControlComponent, OlGeolocationControlComponent, OlLayerSwitcherComponent, OlRotateControlComponent, OlScaleLineControlComponent, OlTimelineComponent, OlZoomControlComponent, ROTATE_CONTROL_MAP_SERVICE, provideControls, withControls }; export type { BasemapConfig, BasemapSwitcherPosition, ControlConfig, ControlPosition, LayerSwitcherItem, LayerSwitcherPosition, RotateControlMapService, TimelinePosition };