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

package com.hypixel.hytale.builtin.hytalegenerator.fields.points;

import com.hypixel.hytale.math.vector.Vector2d;
import com.hypixel.hytale.math.vector.Vector3d;
import java.util.function.Consumer;
import com.hypixel.hytale.math.vector.Vector2i;
import java.util.List;
import javax.annotation.Nonnull;
import com.hypixel.hytale.math.vector.Vector3i;

public interface PointProvider
{
    List<Vector3i> points3i(@Nonnull final Vector3i p0, @Nonnull final Vector3i p1);
    
    List<Vector2i> points2i(@Nonnull final Vector2i p0, @Nonnull final Vector2i p1);
    
    List<Integer> points1i(final int p0, final int p1);
    
    void points3i(@Nonnull final Vector3i p0, @Nonnull final Vector3i p1, @Nonnull final Consumer<Vector3i> p2);
    
    void points2i(@Nonnull final Vector2i p0, @Nonnull final Vector2i p1, @Nonnull final Consumer<Vector2i> p2);
    
    void points1i(final int p0, final int p1, @Nonnull final Consumer<Integer> p2);
    
    List<Vector3d> points3d(@Nonnull final Vector3d p0, @Nonnull final Vector3d p1);
    
    List<Vector2d> points2d(@Nonnull final Vector2d p0, @Nonnull final Vector2d p1);
    
    List<Double> points1d(final double p0, final double p1);
    
    void points3d(@Nonnull final Vector3d p0, @Nonnull final Vector3d p1, @Nonnull final Consumer<Vector3d> p2);
    
    void points2d(@Nonnull final Vector2d p0, @Nonnull final Vector2d p1, @Nonnull final Consumer<Vector2d> p2);
    
    void points1d(final double p0, final double p1, @Nonnull final Consumer<Double> p2);
}
