import { vec2 } from "gl-matrix";
import Collider, { CollisionResult } from "./collider";
import Circle from "../../shapes/circle";
/**
 * Represents a circle collider in 2D world space with a position and dimensions.
 */
export default class CircleCollider extends Circle implements Collider {
    /**
     * Creates a new {@link CircleCollider} instance with a centre and radius.
     *
     * @param radius The radius of the circle
     * @param centre The circle's position in world space
     */
    constructor(radius: number, centre?: vec2);
    /**
     * Checks if this box is colliding with another collider.
     *
     * @param c {@link Collider} to test collisions against
     * @returns {@link CollisionResult} with the results of the test
     */
    testCollision(c: Collider): CollisionResult;
    /**
     * Calculates a support point on the minkowski difference in a given direction.
     *
     * @param c The collider to test against
     * @param direction The direction to use when calculating furthest points
     * @returns The support point in the given direction for the [Minkowski difference](https://en.wikipedia.org/wiki/Minkowski_addition)
     */
    supportPoint(c: Collider, direction: vec2): vec2;
    /**
     * Calculates the furthest point on the collider in a direction.
     *
     * @param direction The direction in which to calculate the furthest point
     * @returns The furthest point on the collider in the given direction
     */
    findFurthestPoint(direction: vec2): vec2;
    /**
     * Calculates the furthest point on the collider in a direction and it's neighbouring vertices on the collider.
     *
     * @param direction The direction in which to calculate the furthest point
     * @returns The furthest point on the collider in the given direction and its left and right neighbours
     */
    findFurthestNeighbours(direction: vec2): {
        furthest: vec2;
        left: vec2;
        right: vec2;
    };
}
