import { type SeaName } from "./geometry.ts"; import type { CityFrame } from "../cities/geometry.ts"; /** The styles of the layer (`#sea-names` in the element's shadow root). Water is spaced out; continents a little less. */ export declare const SEA_NAMES_STYLE: string; export interface SeaNamesStats { on: boolean; radius: number; names: number; renders: number; } export interface SeaHost { frame(frame: (CityFrame & { disc?: { x: number; y: number; radius: number; }; }) | null, taken?: readonly { left: number; top: number; width: number; height: number; }[]): void; refresh(): void; readonly shown: readonly SeaName[]; readonly boxes: readonly { left: number; top: number; width: number; height: number; }[]; readonly stats: SeaNamesStats; dispose(): void; } export interface SeaHostOptions { attribute(name: string): string | null; language(): "en" | "ja"; root: ShadowRoot; } /** * Makes the layer of one element. Nothing is added to the root until `sea-names` is on. * * @param options - The attribute reader, the language and the shadow root. * @returns The host. */ export declare function createSeaHost(options: SeaHostOptions): SeaHost;