import type { RendererService } from "../../renderer";
import type { Point } from "./types";
import type { LayerManager } from "./layerManager";
/**
 * Manages named trails of evenly-spaced dots between two points.
 *
 * Each trail has its own scale handler — when the camera zooms, dots are
 * recalculated so visual spacing stays constant.
 */
export interface TrailManager {
    /**
     * Place, update, or remove a named trail.
     * Pass `from/to = null` to remove the trail and unregister its scale handler.
     */
    setTrail(name: string, from: Point | null, to: Point | null, options?: {
        readonly canvas: HTMLCanvasElement;
        readonly layer: string;
    }): void;
    /** Remove all trails and unregister their scale handlers. */
    destroy(): void;
}
/**
 * Create a {@link TrailManager} that renders dot trails into layers
 * managed by the given {@link LayerManager}.
 */
export declare function createTrailManager(layerManager: LayerManager, rendererService: RendererService): TrailManager;
//# sourceMappingURL=trailManager.d.ts.map