// This file is automatically generated, so please do not edit it.
// @generated by `flutter_rust_bridge`@ 2.12.0.

// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import

import '../../frb_generated.dart';
import '../../keys/backup_password_keys.dart';
import '../../lib.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';

class RustBackupArchive {
  const RustBackupArchive();

  static Future<(String, String)> createBackupArchive() => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupArchiveCreateBackupArchive();

  static Future<String?> getBackupDownloadToken() => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupArchiveGetBackupDownloadToken();

  static Future<void> restoreBackupArchive({required String filePath}) =>
      RustLib.instance.api
          .crateBridgeWrapperBackupRustBackupArchiveRestoreBackupArchive(
            filePath: filePath,
          );

  @override
  int get hashCode => 0;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is RustBackupArchive && runtimeType == other.runtimeType;
}

class RustBackupIdentity {
  const RustBackupIdentity();

  static Future<String?> getBackupId() => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentityGetBackupId();

  static Future<BackupPasswordKeys> getBackupPasswordKeys({
    required PlatformInt64 userId,
    required String password,
  }) => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentityGetBackupPasswordKeys(
        userId: userId,
        password: password,
      );

  static Future<Uint8List> getIdentityBackupBytes() => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentityGetIdentityBackupBytes();

  static Future<void> importBackupPasswordKeys({
    required List<int> backupId,
    required List<int> encryptionKey,
  }) => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentityImportBackupPasswordKeys(
        backupId: backupId,
        encryptionKey: encryptionKey,
      );

  static Future<void> restoreIdentityBackup({
    required BackupPasswordKeys keys,
    required List<int> encryptedBytes,
  }) => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentityRestoreIdentityBackup(
        keys: keys,
        encryptedBytes: encryptedBytes,
      );

  static Future<void> setBackupPasswordKeys({
    required PlatformInt64 userId,
    required String password,
  }) => RustLib.instance.api
      .crateBridgeWrapperBackupRustBackupIdentitySetBackupPasswordKeys(
        userId: userId,
        password: password,
      );

  @override
  int get hashCode => 0;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is RustBackupIdentity && runtimeType == other.runtimeType;
}
