// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.component.spatial;

import java.util.List;
import javax.annotation.Nullable;
import com.hypixel.hytale.math.vector.Vector3d;
import javax.annotation.Nonnull;

public interface SpatialStructure<T>
{
    int size();
    
    void rebuild(@Nonnull final SpatialData<T> p0);
    
    @Nullable
    T closest(@Nonnull final Vector3d p0);
    
    void collect(@Nonnull final Vector3d p0, final double p1, @Nonnull final List<T> p2);
    
    void collectCylinder(@Nonnull final Vector3d p0, final double p1, final double p2, @Nonnull final List<T> p3);
    
    void collectBox(@Nonnull final Vector3d p0, @Nonnull final Vector3d p1, @Nonnull final List<T> p2);
    
    void ordered(@Nonnull final Vector3d p0, final double p1, @Nonnull final List<T> p2);
    
    void ordered3DAxis(@Nonnull final Vector3d p0, final double p1, final double p2, final double p3, @Nonnull final List<T> p4);
    
    @Nonnull
    String dump();
}
