interface AsukaListenerSettings {
    collisionEnabled: boolean;
    collisionMode: "soft" | "hard";
    collisionPadding: number;
    edgeResistance: number;
    elasticEdges: boolean;
    elasticOverflowLimit: number;
    inertia: boolean;
    inertiaFriction: number;
    inertiaMaxMs: number;
    inertiaMinSpeed: number;
    magneticStacking: boolean;
    magneticStackingSpacing: number;
    magneticStackingStrength: number;
    magnetStrength: number;
    smartSnap: boolean;
    smartSnapMaxFactor: number;
    smartSnapMinFactor: number;
    snapPriorityWeights: {
        canvasCenter: number;
        canvasEdge: number;
        objectCenter: number;
        objectEdge: number;
        zoneCenter: number;
        zoneEdge: number;
    };
    snapRelease: number;
    snapRotationStep: number;
    snapTolerance: number;
    springDamping: number;
    springK: number;
}

Properties

collisionEnabled: boolean
collisionMode: "soft" | "hard"
collisionPadding: number
edgeResistance: number

0..1 — how strongly objects are pushed back inside boundaries when they try to exceed them.

elasticEdges: boolean
elasticOverflowLimit: number

Maximum overflow allowed beyond boundary in soft mode (px).

inertia: boolean
inertiaFriction: number

Friction (0..1). Lower stops faster; higher glides longer.

inertiaMaxMs: number

Safety cap.

inertiaMinSpeed: number

Minimum speed (px/ms) to start inertia.

magneticStacking: boolean
magneticStackingSpacing: number
magneticStackingStrength: number
magnetStrength: number

0..1 — how strongly objects are attracted to guides (1 = strong snap, 0 = very soft).

smartSnap: boolean

Enable dynamic snap tuning based on movement speed (slow = stronger snap, fast = weaker).

smartSnapMaxFactor: number

Maximum multiplier applied to snap tolerance when moving slow.

smartSnapMinFactor: number

Minimum multiplier applied to snap tolerance when moving fast.

snapPriorityWeights: {
    canvasCenter: number;
    canvasEdge: number;
    objectCenter: number;
    objectEdge: number;
    zoneCenter: number;
    zoneEdge: number;
}
snapRelease: number
snapRotationStep: number
snapTolerance: number
springDamping: number

Spring damping (0..1). Higher = less oscillation.

springK: number

Spring stiffness (higher = snappier).