import { type RouteLine } from "../types";
interface TransitionPointsInput {
    /** Full route including virtual lines */
    readonly routeLines: RouteLine[];
    /** Floor to scope to. `null` = no floor scoping (returns transitions on every floor). */
    readonly currentLayerName: string | null;
    /** Floor names ordered low → high (from layerStore.floors) */
    readonly floorOrder: string[];
}
export interface TransitionPointDef {
    readonly x: number;
    readonly y: number;
    /** Floor where the icon is rendered */
    readonly layer: string;
    /** Floor the transition leads to (for click-to-switch) */
    readonly targetLayer: string;
    readonly direction: "up" | "down" | "neutral";
    /** Whether this is an entry (arriving from another floor) or exit (leaving to another floor) in walking direction */
    readonly role: "entry" | "exit";
}
/**
 * Computes deduplicated, correctly-directed transition points for the
 * current floor.
 *
 * Works directly with the full `routeLines` array (including virtual lines)
 * and does NOT depend on `routeNextFloor` — the target floor is read from
 * the opposite endpoint of each virtual line.
 */
export declare function computeTransitionPoints(input: TransitionPointsInput): TransitionPointDef[];
export {};
//# sourceMappingURL=computeTransitionPoints.d.ts.map