twonly-app/lib/core/bridge/api.dart
2026-08-29 01:30:23 +02:00

437 lines
15 KiB
Dart

// 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 '../api/server/prekeys.dart';
import '../frb_generated.dart';
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
// These functions are ignored because they are not marked as `pub`: `api_result`, `empty_api_response`, `encoded_api_response`, `from_rust_state`
// These types are ignored because they are neither used by any `pub` functions nor (for structs and enums) marked `#[frb(unignore)]`: `ApiConfig`, `ServerResult`
// These function are ignored because they are on traits that is not defined in current crate (put an empty `#[frb]` on it to unignore): `assert_fields_are_eq`, `assert_fields_are_eq`, `clone`, `clone`, `clone`, `clone`, `eq`, `eq`, `fmt`, `fmt`, `fmt`, `fmt`
enum ApiConnectionState {
stopped,
connecting,
connected,
authenticating,
authenticated,
reconnecting,
suspended,
permanentlyRejected,
}
class ApiEvent {
final ApiEventKind kind;
final ApiConnectionState? state;
final String? message;
const ApiEvent({
required this.kind,
this.state,
this.message,
});
@override
int get hashCode => kind.hashCode ^ state.hashCode ^ message.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is ApiEvent &&
runtimeType == other.runtimeType &&
kind == other.kind &&
state == other.state &&
message == other.message;
}
enum ApiEventKind {
connectionStateChanged,
transportError,
authenticated,
planUpdated,
appOutdated,
newDeviceRegistered,
loginTokenMigrated,
}
/// Flutter-facing facade for the Rust-owned API runtime.
class RustApi {
const RustApi();
static Future<void> addAdditionalUser({required PlatformInt64 userId}) =>
RustLib.instance.api.crateBridgeApiRustApiAddAdditionalUser(
userId: userId,
);
static Future<BigInt> allocateSequence() =>
RustLib.instance.api.crateBridgeApiRustApiAllocateSequence();
static String apiBaseUrl({required String protocol}) =>
RustLib.instance.api.crateBridgeApiRustApiApiBaseUrl(protocol: protocol);
static Future<void> changeUsername({required String username}) => RustLib
.instance
.api
.crateBridgeApiRustApiChangeUsername(username: username);
static Future<void> checkForDeletedUsernames() =>
RustLib.instance.api.crateBridgeApiRustApiCheckForDeletedUsernames();
static Future<Uint8List> checkForPasswordlessNotification({
required String notificationId,
required List<int> downloadAuthToken,
required Int64List alreadyReceivedMessageIds,
}) => RustLib.instance.api
.crateBridgeApiRustApiCheckForPasswordlessNotification(
notificationId: notificationId,
downloadAuthToken: downloadAuthToken,
alreadyReceivedMessageIds: alreadyReceivedMessageIds,
);
static Future<void> close() =>
RustLib.instance.api.crateBridgeApiRustApiClose();
static Future<void> confirmMemoriesUpload({required String mediaId}) =>
RustLib.instance.api.crateBridgeApiRustApiConfirmMemoriesUpload(
mediaId: mediaId,
);
static Future<void> connect() =>
RustLib.instance.api.crateBridgeApiRustApiConnect();
static Future<ApiConnectionState> connectionState() =>
RustLib.instance.api.crateBridgeApiRustApiConnectionState();
static Future<void> deleteAccount() =>
RustLib.instance.api.crateBridgeApiRustApiDeleteAccount();
static Future<void> deleteMemory({required String mediaId}) =>
RustLib.instance.api.crateBridgeApiRustApiDeleteMemory(mediaId: mediaId);
static Future<void> disableMemoriesBackup() =>
RustLib.instance.api.crateBridgeApiRustApiDisableMemoriesBackup();
static Future<void> downloadDone({required List<int> token}) =>
RustLib.instance.api.crateBridgeApiRustApiDownloadDone(token: token);
static Future<void> downloadMedia({required String mediaId}) =>
RustLib.instance.api.crateBridgeApiRustApiDownloadMedia(mediaId: mediaId);
static Future<void> downloadPendingMedia() =>
RustLib.instance.api.crateBridgeApiRustApiDownloadPendingMedia();
static Stream<ApiEvent> events() =>
RustLib.instance.api.crateBridgeApiRustApiEvents();
static Future<void> forceIpaCheck() =>
RustLib.instance.api.crateBridgeApiRustApiForceIpaCheck();
static Future<Uint8List> getMemoriesUrl({
required String mediaId,
required bool thumbnail,
}) => RustLib.instance.api.crateBridgeApiRustApiGetMemoriesUrl(
mediaId: mediaId,
thumbnail: thumbnail,
);
static Future<Uint8List> getMemoriesUsage() =>
RustLib.instance.api.crateBridgeApiRustApiGetMemoriesUsage();
static Future<Uint8List> getPlanBalance() =>
RustLib.instance.api.crateBridgeApiRustApiGetPlanBalance();
static Future<Uint8List> getProofOfWork() =>
RustLib.instance.api.crateBridgeApiRustApiGetProofOfWork();
static Future<Uint8List> getServerKeyForPasswordlessRecovery({
required PlatformInt64 userId,
required List<int> serverKeyProtection,
Uint8List? pinUnlockToken,
Uint8List? pinProtectionKey,
String? email,
}) => RustLib.instance.api
.crateBridgeApiRustApiGetServerKeyForPasswordlessRecovery(
userId: userId,
serverKeyProtection: serverKeyProtection,
pinUnlockToken: pinUnlockToken,
pinProtectionKey: pinProtectionKey,
email: email,
);
static Future<Uint8List> getUserById({required PlatformInt64 userId}) =>
RustLib.instance.api.crateBridgeApiRustApiGetUserById(userId: userId);
static Future<Uint8List> getUserData({required String username}) =>
RustLib.instance.api.crateBridgeApiRustApiGetUserData(username: username);
static Future<PlatformInt64> getUserIdFromUsername({
required String username,
}) => RustLib.instance.api.crateBridgeApiRustApiGetUserIdFromUsername(
username: username,
);
static Future<String> insertAndSendAdditionalData({
required String groupId,
required String messageType,
required List<int> additionalData,
}) => RustLib.instance.api.crateBridgeApiRustApiInsertAndSendAdditionalData(
groupId: groupId,
messageType: messageType,
additionalData: additionalData,
);
static Future<String> insertAndSendAskAboutUser({
required PlatformInt64 contactId,
required PlatformInt64 askAboutUserId,
}) => RustLib.instance.api.crateBridgeApiRustApiInsertAndSendAskAboutUser(
contactId: contactId,
askAboutUserId: askAboutUserId,
);
static Future<String> insertAndSendContactShare({
required String groupId,
required Int64List contactIds,
}) => RustLib.instance.api.crateBridgeApiRustApiInsertAndSendContactShare(
groupId: groupId,
contactIds: contactIds,
);
static Future<String> insertAndSendText({
required String groupId,
required String text,
String? quoteMessageId,
}) => RustLib.instance.api.crateBridgeApiRustApiInsertAndSendText(
groupId: groupId,
text: text,
quoteMessageId: quoteMessageId,
);
static Future<void> ipaPurchase({
required String productId,
required String source,
required String verificationData,
}) => RustLib.instance.api.crateBridgeApiRustApiIpaPurchase(
productId: productId,
source: source,
verificationData: verificationData,
);
static Future<Uint8List> loadPlanBalance() =>
RustLib.instance.api.crateBridgeApiRustApiLoadPlanBalance();
static Future<void> notifyMessagesOpened({
required PlatformInt64 contactId,
required List<String> messageIds,
}) => RustLib.instance.api.crateBridgeApiRustApiNotifyMessagesOpened(
contactId: contactId,
messageIds: messageIds,
);
static Future<void> performPasswordlessRecoveryHeartbeat() => RustLib
.instance
.api
.crateBridgeApiRustApiPerformPasswordlessRecoveryHeartbeat();
static Future<Uint8List?> prepareQueuedMessage({required String receiptId}) =>
RustLib.instance.api.crateBridgeApiRustApiPrepareQueuedMessage(
receiptId: receiptId,
);
static Future<PlatformInt64> register({
required String username,
required PlatformInt64 proofOfWork,
required String langCode,
required bool isIos,
}) => RustLib.instance.api.crateBridgeApiRustApiRegister(
username: username,
proofOfWork: proofOfWork,
langCode: langCode,
isIos: isIos,
);
static Future<void> registerPasswordlessNotification({
required String notificationId,
required List<int> downloadAuthToken,
required String langCode,
String? googleFcm,
}) => RustLib.instance.api
.crateBridgeApiRustApiRegisterPasswordlessNotification(
notificationId: notificationId,
downloadAuthToken: downloadAuthToken,
langCode: langCode,
googleFcm: googleFcm,
);
static Future<void> registerPasswordlessRecovery({
required List<int> encryptedServerKey,
Uint8List? pinUnlockToken,
}) => RustLib.instance.api.crateBridgeApiRustApiRegisterPasswordlessRecovery(
encryptedServerKey: encryptedServerKey,
pinUnlockToken: pinUnlockToken,
);
/// Reloads identity and authentication settings from Rust-owned storage.
/// No configuration values are accepted from the caller.
static Future<void> reloadConfiguration() =>
RustLib.instance.api.crateBridgeApiRustApiReloadConfiguration();
static Future<void> removeAdditionalUser({required PlatformInt64 userId}) =>
RustLib.instance.api.crateBridgeApiRustApiRemoveAdditionalUser(
userId: userId,
);
static Future<void> reportUser({
required PlatformInt64 userId,
required String reason,
}) => RustLib.instance.api.crateBridgeApiRustApiReportUser(
userId: userId,
reason: reason,
);
/// Sends a protobuf ClientToServer envelope. Rust assigns the sequence ID
/// and resolves this future with the matching ServerToClient response.
static Future<Uint8List> requestBinary({required List<int> bytes}) =>
RustLib.instance.api.crateBridgeApiRustApiRequestBinary(bytes: bytes);
static Future<void> requestContactByUsername({required String username}) =>
RustLib.instance.api.crateBridgeApiRustApiRequestContactByUsername(
username: username,
);
static Future<void> requestMediaReupload({required String mediaId}) => RustLib
.instance
.api
.crateBridgeApiRustApiRequestMediaReupload(mediaId: mediaId);
static Future<Uint8List> requestMemoriesUpload({
required PlatformInt64 size,
required PlatformInt64 originalDate,
required String mediaId,
}) => RustLib.instance.api.crateBridgeApiRustApiRequestMemoriesUpload(
size: size,
originalDate: originalDate,
mediaId: mediaId,
);
static Future<void> retransmitAllMessages() =>
RustLib.instance.api.crateBridgeApiRustApiRetransmitAllMessages();
static Future<void> sendBinary({required List<int> bytes}) =>
RustLib.instance.api.crateBridgeApiRustApiSendBinary(bytes: bytes);
static Future<void> sendContactProfile({required PlatformInt64 contactId}) =>
RustLib.instance.api.crateBridgeApiRustApiSendContactProfile(
contactId: contactId,
);
static Future<Uint8List?> sendEncryptedContent({
required PlatformInt64 contactId,
required List<int> content,
String? messageId,
required bool onlySendIfNoReceiptsAreOpen,
required bool onlyReturnEncryptedData,
required bool blocking,
}) => RustLib.instance.api.crateBridgeApiRustApiSendEncryptedContent(
contactId: contactId,
content: content,
messageId: messageId,
onlySendIfNoReceiptsAreOpen: onlySendIfNoReceiptsAreOpen,
onlyReturnEncryptedData: onlyReturnEncryptedData,
blocking: blocking,
);
static Future<void> sendEncryptedContentToGroup({
required String groupId,
required List<int> content,
String? messageId,
required bool onlySendIfNoReceiptsAreOpen,
}) => RustLib.instance.api.crateBridgeApiRustApiSendEncryptedContentToGroup(
groupId: groupId,
content: content,
messageId: messageId,
onlySendIfNoReceiptsAreOpen: onlySendIfNoReceiptsAreOpen,
);
static Future<void> sendQueuedMessage({required String receiptId}) => RustLib
.instance
.api
.crateBridgeApiRustApiSendQueuedMessage(receiptId: receiptId);
static Future<void> sendTextMessage({
required PlatformInt64 userId,
required List<int> body,
}) => RustLib.instance.api.crateBridgeApiRustApiSendTextMessage(
userId: userId,
body: body,
);
static Future<void> sendTyping({
required String groupId,
required bool isTyping,
}) => RustLib.instance.api.crateBridgeApiRustApiSendTyping(
groupId: groupId,
isTyping: isTyping,
);
static Future<void> setBackground({required bool inBackground}) => RustLib
.instance
.api
.crateBridgeApiRustApiSetBackground(inBackground: inBackground);
static Future<void> setLoginToken({required List<int> token}) =>
RustLib.instance.api.crateBridgeApiRustApiSetLoginToken(token: token);
static Future<void> setNetworkAvailable({required bool available}) => RustLib
.instance
.api
.crateBridgeApiRustApiSetNetworkAvailable(available: available);
static Future<void> submitRecoveryShare({
required String notificationId,
required List<int> encryptedMessage,
}) => RustLib.instance.api.crateBridgeApiRustApiSubmitRecoveryShare(
notificationId: notificationId,
encryptedMessage: encryptedMessage,
);
static Future<void> updateFcmToken({required String token}) =>
RustLib.instance.api.crateBridgeApiRustApiUpdateFcmToken(token: token);
static Future<void> updateSignedPreKey({
required PlatformInt64 id,
required List<int> key,
required List<int> signature,
}) => RustLib.instance.api.crateBridgeApiRustApiUpdateSignedPreKey(
id: id,
key: key,
signature: signature,
);
static Future<void> uploadPqcPreKeys({
required PlatformInt64 eccSignedPrekeyId,
required List<int> eccSignedPrekey,
required List<int> eccSignedPrekeySignature,
required PlatformInt64 kyberSignedPrekeyId,
required List<int> kyberSignedPrekey,
required List<int> kyberSignedPrekeySignature,
required List<PqcPreKeyInput> prekeys,
}) => RustLib.instance.api.crateBridgeApiRustApiUploadPqcPreKeys(
eccSignedPrekeyId: eccSignedPrekeyId,
eccSignedPrekey: eccSignedPrekey,
eccSignedPrekeySignature: eccSignedPrekeySignature,
kyberSignedPrekeyId: kyberSignedPrekeyId,
kyberSignedPrekey: kyberSignedPrekey,
kyberSignedPrekeySignature: kyberSignedPrekeySignature,
prekeys: prekeys,
);
@override
int get hashCode => 0;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is RustApi && runtimeType == other.runtimeType;
}