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

package it.unimi.dsi.fastutil.bytes;

import it.unimi.dsi.fastutil.objects.ObjectIterator;
import it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator;
import java.util.Comparator;
import java.util.Collection;
import java.util.Set;
import it.unimi.dsi.fastutil.objects.ObjectSet;
import it.unimi.dsi.fastutil.longs.LongCollection;
import java.util.Map;
import it.unimi.dsi.fastutil.objects.ObjectSortedSet;
import java.util.SortedMap;

public interface Byte2LongSortedMap extends Byte2LongMap, SortedMap<Byte, Long>
{
    Byte2LongSortedMap subMap(final byte p0, final byte p1);
    
    Byte2LongSortedMap headMap(final byte p0);
    
    Byte2LongSortedMap tailMap(final byte p0);
    
    byte firstByteKey();
    
    byte lastByteKey();
    
    @Deprecated
    default Byte2LongSortedMap subMap(final Byte from, final Byte to) {
        return this.subMap((byte)from, (byte)to);
    }
    
    @Deprecated
    default Byte2LongSortedMap headMap(final Byte to) {
        return this.headMap((byte)to);
    }
    
    @Deprecated
    default Byte2LongSortedMap tailMap(final Byte from) {
        return this.tailMap((byte)from);
    }
    
    @Deprecated
    default Byte firstKey() {
        return this.firstByteKey();
    }
    
    @Deprecated
    default Byte lastKey() {
        return this.lastByteKey();
    }
    
    @Deprecated
    default ObjectSortedSet<Map.Entry<Byte, Long>> entrySet() {
        return (ObjectSortedSet<Map.Entry<Byte, Long>>)this.byte2LongEntrySet();
    }
    
    ObjectSortedSet<Byte2LongMap.Entry> byte2LongEntrySet();
    
    ByteSortedSet keySet();
    
    LongCollection values();
    
    ByteComparator comparator();
    
    public interface FastSortedEntrySet extends ObjectSortedSet<Byte2LongMap.Entry>, FastEntrySet
    {
        ObjectBidirectionalIterator<Byte2LongMap.Entry> fastIterator();
        
        ObjectBidirectionalIterator<Byte2LongMap.Entry> fastIterator(final Byte2LongMap.Entry p0);
    }
}
