/**
 * Determines how values from the PhysicsMaterial are combined when
 * two objects are in contact. When each PhysicsMaterial specifies
 * a different combine mode for some property, the combine mode which
 * is used will be selected based on their order in this enum - i.e.
 * a value later in this list will be preferentially used.
 */
export declare enum PhysicsMaterialCombineMode {
    /**
     * The final value will be the geometric mean of the two values:
     * sqrt( valueA *  valueB )
     */
    GEOMETRIC_MEAN = 0,
    /**
     * The final value will be the smaller of the two:
     * min( valueA , valueB )
     */
    MINIMUM = 1,
    MAXIMUM = 2,
    ARITHMETIC_MEAN = 3,
    /**
     * The final value will be the product of the two values:
     * valueA * valueB
     */
    MULTIPLY = 4
}
/**
 * Physics material class
 * Helps setting friction and restitution that are used to compute responding forces in collision response
 */
export interface PhysicsMaterial {
    /**
     * Sets the friction used by this material
     *
     * The friction determines how much an object will slow down when it is in contact with another object.
     * This is important for simulating realistic physics, such as when an object slides across a surface.
     *
     * If not provided, a default value of 0.5 will be used.
     */
    friction?: number;
    /**
     * Sets the static friction used by this material.
     *
     * Static friction is the friction that must be overcome before a pair of objects can start sliding
     * relative to each other; for physically-realistic behaviour, it should be at least as high as the
     * normal friction value. If not provided, the friction value will be used
     */
    staticFriction?: number;
    /**
     * Sets the restitution of the physics material.
     *
     * The restitution is a factor which describes, the amount of energy that is retained after a collision,
     * which should be a number between 0 and 1..
     *
     * A restitution of 0 means that no energy is retained and the objects will not bounce off each other,
     * while a restitution of 1 means that all energy is retained and the objects will bounce.
     *
     * Note, though, due that due to the simulation implementation, an object with a restitution of 1 may
     * still lose energy over time.
     *
     * If not provided, a default value of 0 will be used.
     */
    restitution?: number;
    /**
     * Describes how two different friction values should be combined. See PhysicsMaterialCombineMode for
     * more details.
     *
     * If not provided, will use PhysicsMaterialCombineMode.MINIMUM
     */
    frictionCombine?: PhysicsMaterialCombineMode;
    /**
     * Describes how two different restitution values should be combined. See PhysicsMaterialCombineMode for
     * more details.
     *
     * If not provided, will use PhysicsMaterialCombineMode.MAXIMUM
     */
    restitutionCombine?: PhysicsMaterialCombineMode;
}
