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

package it.unimi.dsi.fastutil.booleans;

import java.util.Iterator;
import java.util.Spliterator;
import it.unimi.dsi.fastutil.BigListIterator;
import it.unimi.dsi.fastutil.BigArrays;
import it.unimi.dsi.fastutil.BigList;

public interface BooleanBigList extends BigList<Boolean>, BooleanCollection, Comparable<BigList<? extends Boolean>>
{
    BooleanBigListIterator iterator();
    
    BooleanBigListIterator listIterator();
    
    BooleanBigListIterator listIterator(final long p0);
    
    default BooleanSpliterator spliterator() {
        return BooleanSpliterators.asSpliterator(this.iterator(), this.size64(), 16720);
    }
    
    BooleanBigList subList(final long p0, final long p1);
    
    void getElements(final long p0, final boolean[][] p1, final long p2, final long p3);
    
    default void getElements(final long from, final boolean[] a, final int offset, final int length) {
        this.getElements(from, new boolean[][] { a }, offset, length);
    }
    
    void removeElements(final long p0, final long p1);
    
    void addElements(final long p0, final boolean[][] p1);
    
    void addElements(final long p0, final boolean[][] p1, final long p2, final long p3);
    
    default void setElements(final boolean[][] a) {
        this.setElements(0L, a);
    }
    
    default void setElements(final long index, final boolean[][] a) {
        this.setElements(index, a, 0L, BigArrays.length(a));
    }
    
    default void setElements(final long index, final boolean[][] a, final long offset, final long length) {
        if (index < 0L) {
            throw new IndexOutOfBoundsException("Index (" + index + ") is negative");
        }
        if (index > this.size64()) {
            throw new IndexOutOfBoundsException("Index (" + index + ") is greater than list size (" + this.size64() + ")");
        }
        BigArrays.ensureOffsetLength(a, offset, length);
        if (index + length > this.size64()) {
            throw new IndexOutOfBoundsException("End index (" + (index + length) + ") is greater than list size (" + this.size64() + ")");
        }
        final BooleanBigListIterator iter = this.listIterator(index);
        long i = 0L;
        while (i < length) {
            iter.nextBoolean();
            iter.set(BigArrays.get(a, offset + i++));
        }
    }
    
    void add(final long p0, final boolean p1);
    
    boolean addAll(final long p0, final BooleanCollection p1);
    
    boolean getBoolean(final long p0);
    
    boolean removeBoolean(final long p0);
    
    boolean set(final long p0, final boolean p1);
    
    long indexOf(final boolean p0);
    
    long lastIndexOf(final boolean p0);
    
    @Deprecated
    void add(final long p0, final Boolean p1);
    
    @Deprecated
    Boolean get(final long p0);
    
    @Deprecated
    long indexOf(final Object p0);
    
    @Deprecated
    long lastIndexOf(final Object p0);
    
    @Deprecated
    Boolean remove(final long p0);
    
    @Deprecated
    Boolean set(final long p0, final Boolean p1);
    
    default boolean addAll(final long index, final BooleanBigList l) {
        return this.addAll(index, (BooleanCollection)l);
    }
    
    default boolean addAll(final BooleanBigList l) {
        return this.addAll(this.size64(), l);
    }
    
    default boolean addAll(final long index, final BooleanList l) {
        return this.addAll(index, (BooleanCollection)l);
    }
    
    default boolean addAll(final BooleanList l) {
        return this.addAll(this.size64(), l);
    }
}
