/** How a radial impulse fades from the blast center to its edge. */ export type RadialFalloff = "linear" | "quadratic" | "none"; /** A radial push: the impulse vector plus the 0..1 falloff sampled at the target. */ export interface RadialImpulse { /** Impulse along the first axis (direction × magnitude). */ x: number; /** Impulse along the second axis (direction × magnitude). */ y: number; /** Impulse magnitude = `power` × `falloff`. */ magnitude: number; /** Falloff weight at the target, 1 at the center down to 0 at the radius. */ falloff: number; } /** Options for {@link radialImpulse}. */ export interface RadialImpulseOptions { /** Falloff shape. Defaults to `"linear"` (`1 − d/r`). */ falloff?: RadialFalloff; } /** * Point-source radial impulse pushing a `target` away from a blast `source`: full `power` at the center * fading to zero at `radius`. Returns `null` when the target sits at or beyond the radius (unaffected), * so callers can early-out. At the exact center the direction is zero. This is the explosion/knockback/ * shockwave push — every arena game hand-rolled the distance, falloff, and normalize. */ export declare function radialImpulse(source: readonly [number, number], target: readonly [number, number], radius: number, power: number, options?: RadialImpulseOptions): RadialImpulse | null;