import 'package:selfprivacy/logic/api_maps/generic_result.dart'; import 'package:selfprivacy/logic/models/callback_dialogue_branching.dart'; import 'package:selfprivacy/logic/models/disk_size.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/launch_installation_data.dart'; import 'package:selfprivacy/logic/models/metrics.dart'; import 'package:selfprivacy/logic/models/price.dart'; import 'package:selfprivacy/logic/models/server_basic_info.dart'; import 'package:selfprivacy/logic/models/server_metadata.dart'; import 'package:selfprivacy/logic/models/server_provider_location.dart'; import 'package:selfprivacy/logic/models/server_type.dart'; export 'package:selfprivacy/logic/api_maps/generic_result.dart'; export 'package:selfprivacy/logic/models/launch_installation_data.dart'; abstract class ServerProvider { ServerProviderType get type; Future>> getServers(); Future> trySetServerLocation(final String location); Future> tryInitApiByToken(final String token); Future>> getAvailableLocations(); Future>> getServerTypes({ required final ServerProviderLocation location, }); Future> deleteServer( final String hostname, ); Future> launchInstallation( final LaunchInstallationData installationData, ); Future> powerOn(final int serverId); Future> restart(final int serverId); Future> getMetrics( final int serverId, final DateTime start, final DateTime end, ); Future getPricePerGb(); Future>> getVolumes({final String? status}); Future> createVolume(); Future> deleteVolume(final ServerVolume volume); Future> resizeVolume( final ServerVolume volume, final DiskSize size, ); Future> attachVolume( final ServerVolume volume, final int serverId, ); Future> detachVolume(final ServerVolume volume); Future>> getMetadata( final int serverId, ); GenericResult get success => GenericResult(success: true, data: true); }