package dev.brighten.antivpn.database; import dev.brighten.antivpn.utils.VPNResponse; import java.util.List; import java.util.Optional; import java.util.UUID; import java.util.function.Consumer; public interface VPNDatabase { Optional getStoredResponse(String ip); void cacheResponse(VPNResponse toCache); boolean isWhitelisted(UUID uuid); boolean isWhitelisted(String ip); void setWhitelisted(UUID uuid, boolean whitelisted); void setWhitelisted(String ip, boolean whitelisted); List getAllWhitelisted(); List getAllWhitelistedIps(); void getStoredResponseAsync(String ip, Consumer> result); void isWhitelistedAsync(UUID uuid, Consumer result); void isWhitelistedAsync(String ip, Consumer result); void alertsState(UUID uuid, Consumer result); void updateAlertsState(UUID uuid, boolean state); void clearResponses(); void init(); void shutdown(); }