import { Evented } from "./events.js"; import type { LatLng, Point } from "./geo.js"; import type { Orihon } from "./map.js"; export interface LayerOptions { pane?: string; attribution?: string; } export type QuerySource = "svg" | "dom" | "canvas" | "webgl" | "cluster" | "object"; export interface QueryHit { layer: Layer; latlng: LatLng; source: QuerySource; id?: string | number; index?: number; feature?: unknown; } export interface QueryOptions { tolerance?: number; layers?: Layer[]; pane?: string; limit?: number; } export type ResolvedQueryOptions = Required; /** @internal Writable options view for in-package updates outside the class. */ export declare function layerOptions(layer: Layer): T; export interface LayerEventMap { add: { map: Orihon; }; remove: { map: Orihon; }; } export declare class Layer extends Evented { #private; map: Orihon | null; /** * Read-only configuration view — the live options object, not a copy. Assigning a field * does not update the DOM or renderer, so use the documented setters (`setOpacity`, * `setStyle`, …). `Readonly` is a TypeScript guarantee and disappears at runtime. */ get options(): Readonly; /** Mutable options bag for subclass setters and in-package lifecycle code. */ protected get writableOptions(): TOptions; constructor(options?: TOptions); addTo(map: Orihon): this; remove(): this; onAdd(map: Orihon): void; onRemove(): void; getPane(name?: TOptions["pane"] | undefined): HTMLElement | null; /** Camera frames call `render()` only when this returns true. */ wantsFrameRender(): boolean; render(): void; /** Optional renderer-specific hit-test used by map.query(). */ queryHit?(point: Point, options: ResolvedQueryOptions): QueryHit | QueryHit[] | null; } //# sourceMappingURL=layer.d.ts.map