import { type Vec3 } from "./catenary.js"; import { type ParamSchema, type ParsedParams, type SceneKindObject, type SceneKindResolveContext } from "../scene/sceneKinds.js"; /** * The editor path kind marking a polyline as a pole/cable run. * @capability pole-line editor-authorable poles + sagging cables along a path */ export declare const POLE_LINE_KIND = "pole_line"; /** One placed pole: grounded base position plus facing yaw along the run. */ export interface Pole { id: string; position: Vec3; yaw: number; } /** One resolved cable span: a point string to loft into a tube, plus its radius. */ export interface Cable { id: string; points: Vec3[]; radius: number; } /** The renderable payload the resolver returns and the shell renderer consumes. */ export interface ResolvedPoleLine { poles: Pole[]; cables: Cable[]; poleHeight: number; poleAsset: string; /** Wires per span — drives the renderer's crossarm width and insulator count. */ wireCount: number; /** Lateral spread between adjacent wires, meters — the renderer hangs insulators at these offsets. */ wireSpacing: number; } /** The pole-line parameter schema — drives the inspector and `meta` parse via the studio seam. */ export declare const POLE_LINE_SCHEMA: ParamSchema; /** * Resolve poles + cables from a document object's points and parsed params. Poles come from the * generic `placeAlongPath` sampler; between each consecutive pair, `wireCount` parallel cables are * strung with lateral offset and quadratic-Bézier `sag` (deeper on longer spans). Pure data. */ export declare function resolvePoleLine(object: SceneKindObject, params: ParsedParams, context?: SceneKindResolveContext): ResolvedPoleLine; /** Registers the pole-line scene kind (schema + resolver + inspector note). Called by `registerBuiltinSceneKinds`. @internal */ export declare function registerPoleLineKind(): void;