/**
 * Candidate slot generation: concentric rings of radial directions around a dot.
 *
 * The inner radius per angle uses the AABB support function (tighter than a
 * uniform half-diagonal, so cardinal placements sit closer), guaranteeing a
 * node's own dot never enters its own box at any angle.
 */
import type { LabelNode, Slot, SolverConfig } from './types';
export declare const generateSlots: (node: LabelNode, crowded: boolean, config: SolverConfig) => Slot[];
/** FNV-1a hash of a string → unsigned 32-bit. */
export declare const hashString: (s: string) => number;
