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

package com.google.protobuf;

import java.util.Map;
import java.util.List;
import java.io.IOException;

@CheckReturnValue
interface Writer
{
    FieldOrder fieldOrder();
    
    void writeSFixed32(final int fieldNumber, final int value) throws IOException;
    
    void writeInt64(final int fieldNumber, final long value) throws IOException;
    
    void writeSFixed64(final int fieldNumber, final long value) throws IOException;
    
    void writeFloat(final int fieldNumber, final float value) throws IOException;
    
    void writeDouble(final int fieldNumber, final double value) throws IOException;
    
    void writeEnum(final int fieldNumber, final int value) throws IOException;
    
    void writeUInt64(final int fieldNumber, final long value) throws IOException;
    
    void writeInt32(final int fieldNumber, final int value) throws IOException;
    
    void writeFixed64(final int fieldNumber, final long value) throws IOException;
    
    void writeFixed32(final int fieldNumber, final int value) throws IOException;
    
    void writeBool(final int fieldNumber, final boolean value) throws IOException;
    
    void writeString(final int fieldNumber, final String value) throws IOException;
    
    void writeBytes(final int fieldNumber, final ByteString value) throws IOException;
    
    void writeUInt32(final int fieldNumber, final int value) throws IOException;
    
    void writeSInt32(final int fieldNumber, final int value) throws IOException;
    
    void writeSInt64(final int fieldNumber, final long value) throws IOException;
    
    void writeMessage(final int fieldNumber, final Object value) throws IOException;
    
    void writeMessage(final int fieldNumber, final Object value, final Schema schema) throws IOException;
    
    @Deprecated
    void writeGroup(final int fieldNumber, final Object value) throws IOException;
    
    @Deprecated
    void writeGroup(final int fieldNumber, final Object value, final Schema schema) throws IOException;
    
    @Deprecated
    void writeStartGroup(final int fieldNumber) throws IOException;
    
    @Deprecated
    void writeEndGroup(final int fieldNumber) throws IOException;
    
    void writeInt32List(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeFixed32List(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeInt64List(final int fieldNumber, final List<Long> value, final boolean packed) throws IOException;
    
    void writeUInt64List(final int fieldNumber, final List<Long> value, final boolean packed) throws IOException;
    
    void writeFixed64List(final int fieldNumber, final List<Long> value, final boolean packed) throws IOException;
    
    void writeFloatList(final int fieldNumber, final List<Float> value, final boolean packed) throws IOException;
    
    void writeDoubleList(final int fieldNumber, final List<Double> value, final boolean packed) throws IOException;
    
    void writeEnumList(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeBoolList(final int fieldNumber, final List<Boolean> value, final boolean packed) throws IOException;
    
    void writeStringList(final int fieldNumber, final List<String> value) throws IOException;
    
    void writeBytesList(final int fieldNumber, final List<ByteString> value) throws IOException;
    
    void writeUInt32List(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeSFixed32List(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeSFixed64List(final int fieldNumber, final List<Long> value, final boolean packed) throws IOException;
    
    void writeSInt32List(final int fieldNumber, final List<Integer> value, final boolean packed) throws IOException;
    
    void writeSInt64List(final int fieldNumber, final List<Long> value, final boolean packed) throws IOException;
    
    void writeMessageList(final int fieldNumber, final List<?> value) throws IOException;
    
    void writeMessageList(final int fieldNumber, final List<?> value, final Schema schema) throws IOException;
    
    @Deprecated
    void writeGroupList(final int fieldNumber, final List<?> value) throws IOException;
    
    @Deprecated
    void writeGroupList(final int fieldNumber, final List<?> value, final Schema schema) throws IOException;
    
    void writeMessageSetItem(final int fieldNumber, final Object value) throws IOException;
    
     <K, V> void writeMap(final int fieldNumber, final MapEntryLite.Metadata<K, V> metadata, final Map<K, V> map) throws IOException;
    
    public enum FieldOrder
    {
        ASCENDING, 
        DESCENDING;
    }
}
