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

package com.hypixel.hytale.server.core.asset.packet;

import javax.annotation.Nullable;
import java.util.Set;
import javax.annotation.Nonnull;
import com.hypixel.hytale.assetstore.AssetUpdateQuery;
import com.hypixel.hytale.protocol.Packet;
import java.util.Map;
import com.hypixel.hytale.assetstore.AssetMap;
import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;

public abstract class AssetPacketGenerator<K, T extends JsonAssetWithMap<K, M>, M extends AssetMap<K, T>>
{
    public abstract Packet generateInitPacket(final M p0, final Map<K, T> p1);
    
    public abstract Packet generateUpdatePacket(final M p0, final Map<K, T> p1, @Nonnull final AssetUpdateQuery p2);
    
    @Nullable
    public abstract Packet generateRemovePacket(final M p0, final Set<K> p1, @Nonnull final AssetUpdateQuery p2);
}
