import 'package:selfprivacy/logic/api_maps/generic_result.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/desired_dns_record.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; import 'package:selfprivacy/logic/models/json/dns_records.dart'; export 'package:selfprivacy/logic/api_maps/generic_result.dart'; abstract class DnsProvider { /// Returns an assigned enum value, respectively to which /// provider implements [DnsProvider] interface. DnsProviderType get type; /// Tries to access an account linked to the provided token. /// /// To generate a token for your account follow instructions of your /// DNS provider respectfully. /// /// If success, saves it for future usage. Future> tryInitApiByToken(final String token); Future> getZoneId(final String domain); Future> removeDomainRecords({ required final ServerDomain domain, final String? ip4, }); Future>> getDnsRecords({ required final ServerDomain domain, }); Future> createDomainRecords({ required final ServerDomain domain, final String? ip4, }); Future> setDnsRecord( final DnsRecord record, final ServerDomain domain, ); Future>> domainList(); Future>> validateDnsRecords( final ServerDomain domain, final String ip4, final String dkimPublicKey, ); List getDesiredDnsRecords( final String? domainName, final String? ip4, final String? dkimPublicKey, ); }