UNPKG

@wireapp/core-crypto

Version:

CoreCrypto bindings for browser and native JavaScript runtimes

1,822 lines (1,820 loc) 116 kB
// Generated by dts-bundle-generator v9.5.1 import { UniffiAbstractObject, UniffiGcObject, UniffiHandle, destructorGuardSymbol, pointerLiteralSymbol, uniffiTypeNameSymbol, variantOrdinalSymbol } from '@ubjs/core'; /** * Returns build metadata for CoreCrypto. */ export declare function buildMetadata(): BuildMetadata; /** * Get an instance of the default cipher suite. */ export declare function cipherSuiteDefault(): CipherSuite; /** * Construct a cipher suite enum instance from its discriminant. */ export declare function cipherSuiteFromU16(discriminant: number): CipherSuite; /** * Updates the key of the CoreCrypto database. * * This function is intended to be called only once, when migrating from CoreCrypto 5.x to 6.x. */ export declare function migrateDatabaseKeyTypeToBytes(path: string, oldKey: string, newKey: DatabaseKeyLike, asyncOpts_?: { signal: AbortSignal; }): Promise<void>; /** * Returns the Proteus last resort prekey ID. * * The last resort prekey is a special prekey retained after all other prekeys have been consumed, * ensuring a session can always be established. Its ID is always `u16::MAX` (65535). */ declare function proteusLastResortPrekeyIdFfi(): number; /** * Initializes the logger. */ export declare function setLogger(logger: CoreCryptoLogger): void; /** * Sets the maximum log level forwarded to the logger. */ export declare function setMaxLogLevel(level: CoreCryptoLogLevel): void; /** * The version of `core-crypto`. */ export declare function version(): string; type UuidLike = Uuid; /** * A Uuid. */ export declare class Uuid extends UniffiAbstractObject { readonly [uniffiTypeNameSymbol] = "Uuid"; readonly [destructorGuardSymbol]: UniffiGcObject; readonly [pointerLiteralSymbol]: UniffiHandle; /** * Parse a `Uuid` from a string. */ constructor(uuid: string); toString(): string; equals(other: Uuid): boolean; hashCode(): bigint; uniffiDestroy(): void; static instanceOf(obj_: any): obj_ is Uuid; } type DeviceIdLike = DeviceId; /** * A Device ID. */ export declare class DeviceId extends UniffiAbstractObject { readonly [uniffiTypeNameSymbol] = "DeviceId"; readonly [destructorGuardSymbol]: UniffiGcObject; readonly [pointerLiteralSymbol]: UniffiHandle; /** * New device id from an unsigned 64-bit integer. */ constructor(id: bigint); /** * Construct a `DeviceId` from 8 bytes encoded as a hex string. */ static fromHexString(hexString: string): DeviceIdLike; /** * Encode the `DeviceId` as a 16-character lowercase hex string, with leading 0s. */ toHexString(): string; /** * Get the number corresponding to this `DeviceId`. */ toU64(): bigint; equals(other: DeviceId): boolean; hashCode(): bigint; uniffiDestroy(): void; static instanceOf(obj_: any): obj_ is DeviceId; } /** * This directly represents a `ClientId` of the `<userid>:<device-id>@<domain>` format. * Instantiate via [ClientId::deserialize]. */ export type DeserializedClientId = { /** * The client id this was deserialized from */ clientId: ClientIdLike; /** * The user id component */ userId: UuidLike; /** * The device id component */ deviceId: DeviceIdLike; /** * The domain */ domain: string; }; /** * Generated factory for {@link DeserializedClientId} record objects. */ export declare const DeserializedClientId: Readonly<{ create: (partial: Partial<DeserializedClientId> & Required<Omit<DeserializedClientId, never>>) => DeserializedClientId; new: (partial: Partial<DeserializedClientId> & Required<Omit<DeserializedClientId, never>>) => DeserializedClientId; defaults: () => Partial<DeserializedClientId>; toString(self_: DeserializedClientId): string; }>; type ClientIdLike = ClientId; /** * A unique identifier for an MLS client. * * Each app instance a user is running, such as desktop or mobile, is a separate client * with its own client id. A single user may therefore have multiple clients. * More information: <https://messaginglayersecurity.rocks/mls-architecture/draft-ietf-mls-architecture.html#name-group-members-and-clients> */ export declare class ClientId extends UniffiAbstractObject { readonly [uniffiTypeNameSymbol] = "ClientId"; readonly [destructorGuardSymbol]: UniffiGcObject; readonly [pointerLiteralSymbol]: UniffiHandle; /** * Create a new client id. */ constructor(userId: UuidLike, deviceId: DeviceIdLike, domain: string); /** * Copy the wrapped data into a new byte array. */ copyBytes(): Uint8Array; /** * Copy the wrapped data into a direct representation of the `<user-id>:<device-id>@<domain>` format. */ deserialize(): DeserializedClientId; equals(other: ClientId): boolean; hashCode(): bigint; uniffiDestroy(): void; static instanceOf(obj_: any): obj_ is ClientId; } /** * The standalone status of a device credential in an MLS group at a given moment. * * This does not represent states where a device is not using MLS or end-to-end identity. */ export declare enum DeviceStatus { /** * The device credential is valid. */ Valid = 1, /** * The device credential's certificate has expired. */ Expired = 2, /** * The device credential's certificate has been revoked. * * Note: revocation is not yet implemented. */ Revoked = 3 } /** * The type of credential used to authenticate an MLS client's identity. */ export declare enum CredentialType { /** * A basic credential backed by a raw key pair, without any certificate infrastructure. */ Basic = 1, /** * An X509 certificate credential, typically obtained through the end-to-end identity enrollment process. */ X509 = 2 } /** * Typealias from the type name used in the UDL file to the builtin type. This * is needed because the UDL type name is used in function/method signatures. */ export type Timestamp = Date; /** * Fields from a `WireIdentity` that are specific to X509 credentials. */ export type X509Identity = { /** * User handle e.g. `john_wire` */ handle: string; /** * Name as displayed in the messaging application e.g. `John Fitzgerald Kennedy` */ displayName: string; /** * DNS domain for which this identity proof was generated e.g. `whitehouse.gov` */ domain: string; /** * PEM-encoded X509 certificate identifying this client in the MLS group. */ certificate: string; /** * X509 certificate serial number */ serialNumber: string; /** * Certificate validity start time (the X509 notBefore field). */ notBefore: Timestamp; /** * Certificate validity end time (the X509 notAfter field). */ notAfter: Timestamp; }; /** * Generated factory for {@link X509Identity} record objects. */ export declare const X509Identity: Readonly<{ create: (partial: Partial<X509Identity> & Required<Omit<X509Identity, never>>) => X509Identity; new: (partial: Partial<X509Identity> & Required<Omit<X509Identity, never>>) => X509Identity; defaults: () => Partial<X509Identity>; }>; /** * The identity claims identifying a client. * * Those claims are verifiable by any member in the group. */ export type WireIdentity = { /** * Unique client identifier e.g. `T4Coy4vdRzianwfOgXpn6A:6add501bacd1d90e@whitehouse.gov` */ clientId?: ClientIdLike; /** * Status of the credential at the moment this object is created. */ status: DeviceStatus; /** * MLS thumbprint */ thumbprint: string; /** * Indicates whether the credential is Basic or X509. */ credentialType: CredentialType; /** * The X509 certificate details; populated only when `credential_type` is X509. */ x509Identity?: X509Identity; }; /** * Generated factory for {@link WireIdentity} record objects. */ export declare const WireIdentity: Readonly<{ create: (partial: Partial<WireIdentity> & Required<Omit<WireIdentity, "clientId" | "x509Identity">>) => WireIdentity; new: (partial: Partial<WireIdentity> & Required<Omit<WireIdentity, "clientId" | "x509Identity">>) => WireIdentity; defaults: () => Partial<WireIdentity>; }>; /** * A decrypted message that was buffered due to out-of-order delivery by the distribution service. * * These are returned in the `buffered_messages` field of a `DecryptedMessage` when a commit is * processed. They represent messages for the new epoch that arrived before the commit that created it. */ export type BufferedDecryptedMessage = { /** * Decrypted plaintext */ message?: Uint8Array; /** * False if processing this message caused the client to be removed from the group, i.e. due to a Remove commit. */ isActive: boolean; /** * Commit delay in seconds. * * When set, clients must delay this long before processing a commit. * This reduces load on the backend, which otherwise would receive epoch change notifications from all clients * simultaneously. */ commitDelay?: bigint; /** * `ClientId` of the sender of the message being decrypted. Only present for application messages. */ senderClientId?: ClientIdLike; /** * Identity claims present in the sender credential. */ identity: WireIdentity; }; /** * Generated factory for {@link BufferedDecryptedMessage} record objects. */ export declare const BufferedDecryptedMessage: Readonly<{ create: (partial: Partial<BufferedDecryptedMessage> & Required<Omit<BufferedDecryptedMessage, "message" | "commitDelay" | "senderClientId">>) => BufferedDecryptedMessage; new: (partial: Partial<BufferedDecryptedMessage> & Required<Omit<BufferedDecryptedMessage, "message" | "commitDelay" | "senderClientId">>) => BufferedDecryptedMessage; defaults: () => Partial<BufferedDecryptedMessage>; }>; /** * Metadata describing the conditions of the build of this software. */ export type BuildMetadata = { /** * Build timestamp */ timestamp: string; /** * Whether this build was in Debug mode (true) or Release mode (false). */ cargoDebug: string; /** * Features enabled for this build. */ cargoFeatures: string; /** * Optimization level */ optLevel: string; /** * Build target triple */ targetTriple: string; /** * Git branch */ gitBranch: string; /** * Output of `git describe` */ gitDescribe: string; /** * Hash of current git commit */ gitSha: string; /** * `true` when the source code differed from the commit at the most recent git hash. */ gitDirty: string; }; /** * Generated factory for {@link BuildMetadata} record objects. */ export declare const BuildMetadata: Readonly<{ create: (partial: Partial<BuildMetadata> & Required<Omit<BuildMetadata, never>>) => BuildMetadata; new: (partial: Partial<BuildMetadata> & Required<Omit<BuildMetadata, never>>) => BuildMetadata; defaults: () => Partial<BuildMetadata>; }>; export declare enum MlsError_Tags { ConversationAlreadyExists = "ConversationAlreadyExists", DuplicateMessage = "DuplicateMessage", BufferedFutureMessage = "BufferedFutureMessage", WrongEpoch = "WrongEpoch", BufferedCommit = "BufferedCommit", MessageEpochTooOld = "MessageEpochTooOld", SelfCommitIgnored = "SelfCommitIgnored", UnmergedPendingGroup = "UnmergedPendingGroup", StaleProposal = "StaleProposal", StaleCommit = "StaleCommit", OrphanWelcome = "OrphanWelcome", MessageRejected = "MessageRejected", Other = "Other" } /** * Errors produced by the MLS layer. */ export declare const MlsError: Readonly<{ instanceOf: (obj: any) => obj is MlsError; ConversationAlreadyExists: { new (inner: { conversationId: Uint8Array; }): { readonly tag: MlsError_Tags.ConversationAlreadyExists; readonly inner: Readonly<{ conversationId: Uint8Array; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { conversationId: Uint8Array; }): { readonly tag: MlsError_Tags.ConversationAlreadyExists; readonly inner: Readonly<{ conversationId: Uint8Array; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.ConversationAlreadyExists; readonly inner: Readonly<{ conversationId: Uint8Array; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.ConversationAlreadyExists; readonly inner: Readonly<{ conversationId: Uint8Array; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: MlsError_Tags.ConversationAlreadyExists; readonly inner: Readonly<{ conversationId: Uint8Array; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ conversationId: Uint8Array; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; DuplicateMessage: { new (): { readonly tag: MlsError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; BufferedFutureMessage: { new (): { readonly tag: MlsError_Tags.BufferedFutureMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.BufferedFutureMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.BufferedFutureMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.BufferedFutureMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; WrongEpoch: { new (): { readonly tag: MlsError_Tags.WrongEpoch; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.WrongEpoch; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.WrongEpoch; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.WrongEpoch; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; BufferedCommit: { new (): { readonly tag: MlsError_Tags.BufferedCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.BufferedCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.BufferedCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.BufferedCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; MessageEpochTooOld: { new (): { readonly tag: MlsError_Tags.MessageEpochTooOld; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.MessageEpochTooOld; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.MessageEpochTooOld; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.MessageEpochTooOld; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; SelfCommitIgnored: { new (): { readonly tag: MlsError_Tags.SelfCommitIgnored; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.SelfCommitIgnored; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.SelfCommitIgnored; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.SelfCommitIgnored; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; UnmergedPendingGroup: { new (): { readonly tag: MlsError_Tags.UnmergedPendingGroup; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.UnmergedPendingGroup; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.UnmergedPendingGroup; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.UnmergedPendingGroup; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; StaleProposal: { new (): { readonly tag: MlsError_Tags.StaleProposal; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.StaleProposal; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.StaleProposal; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.StaleProposal; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; StaleCommit: { new (): { readonly tag: MlsError_Tags.StaleCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.StaleCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.StaleCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.StaleCommit; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; OrphanWelcome: { new (): { readonly tag: MlsError_Tags.OrphanWelcome; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: MlsError_Tags.OrphanWelcome; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.OrphanWelcome; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.OrphanWelcome; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; MessageRejected: { new (inner: { reason: string; }): { readonly tag: MlsError_Tags.MessageRejected; readonly inner: Readonly<{ reason: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { reason: string; }): { readonly tag: MlsError_Tags.MessageRejected; readonly inner: Readonly<{ reason: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.MessageRejected; readonly inner: Readonly<{ reason: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.MessageRejected; readonly inner: Readonly<{ reason: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: MlsError_Tags.MessageRejected; readonly inner: Readonly<{ reason: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ reason: string; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; Other: { new (inner: { msg: string; }): { readonly tag: MlsError_Tags.Other; readonly inner: Readonly<{ msg: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { msg: string; }): { readonly tag: MlsError_Tags.Other; readonly inner: Readonly<{ msg: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: MlsError_Tags.Other; readonly inner: Readonly<{ msg: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: MlsError_Tags.Other; readonly inner: Readonly<{ msg: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: MlsError_Tags.Other; readonly inner: Readonly<{ msg: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "MlsError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ msg: string; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; }>; /** * Errors produced by the MLS layer. */ export type MlsError = InstanceType<(typeof MlsError)["ConversationAlreadyExists" | "DuplicateMessage" | "BufferedFutureMessage" | "WrongEpoch" | "BufferedCommit" | "MessageEpochTooOld" | "SelfCommitIgnored" | "UnmergedPendingGroup" | "StaleProposal" | "StaleCommit" | "OrphanWelcome" | "MessageRejected" | "Other"]>; export declare enum ProteusError_Tags { SessionNotFound = "SessionNotFound", DuplicateMessage = "DuplicateMessage", RemoteIdentityChanged = "RemoteIdentityChanged", Other = "Other" } /** * Errors produced by the Proteus layer. */ export declare const ProteusError: Readonly<{ instanceOf: (obj: any) => obj is ProteusError; SessionNotFound: { new (): { readonly tag: ProteusError_Tags.SessionNotFound; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: ProteusError_Tags.SessionNotFound; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: ProteusError_Tags.SessionNotFound; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: ProteusError_Tags.SessionNotFound; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; DuplicateMessage: { new (): { readonly tag: ProteusError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: ProteusError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: ProteusError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: ProteusError_Tags.DuplicateMessage; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; RemoteIdentityChanged: { new (): { readonly tag: ProteusError_Tags.RemoteIdentityChanged; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(): { readonly tag: ProteusError_Tags.RemoteIdentityChanged; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: ProteusError_Tags.RemoteIdentityChanged; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: ProteusError_Tags.RemoteIdentityChanged; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; Other: { new (inner: { errorCode: number; }): { readonly tag: ProteusError_Tags.Other; readonly inner: Readonly<{ errorCode: number; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { errorCode: number; }): { readonly tag: ProteusError_Tags.Other; readonly inner: Readonly<{ errorCode: number; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: ProteusError_Tags.Other; readonly inner: Readonly<{ errorCode: number; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: ProteusError_Tags.Other; readonly inner: Readonly<{ errorCode: number; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: ProteusError_Tags.Other; readonly inner: Readonly<{ errorCode: number; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "ProteusError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ errorCode: number; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; }>; /** * Errors produced by the Proteus layer. */ export type ProteusError = InstanceType<(typeof ProteusError)["SessionNotFound" | "DuplicateMessage" | "RemoteIdentityChanged" | "Other"]>; export declare enum CoreCryptoError_Tags { Mls = "Mls", Proteus = "Proteus", E2ei = "E2ei", TransactionFailed = "TransactionFailed", Other = "Other" } /** * The primary error type returned across the CoreCrypto FFI boundary. */ export declare const CoreCryptoError: Readonly<{ instanceOf: (obj: any) => obj is CoreCryptoError; Mls: { new (inner: { mlsError: MlsError; }): { readonly tag: CoreCryptoError_Tags.Mls; readonly inner: Readonly<{ mlsError: MlsError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { mlsError: MlsError; }): { readonly tag: CoreCryptoError_Tags.Mls; readonly inner: Readonly<{ mlsError: MlsError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: CoreCryptoError_Tags.Mls; readonly inner: Readonly<{ mlsError: MlsError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: CoreCryptoError_Tags.Mls; readonly inner: Readonly<{ mlsError: MlsError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: CoreCryptoError_Tags.Mls; readonly inner: Readonly<{ mlsError: MlsError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ mlsError: MlsError; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; Proteus: { new (inner: { exception: ProteusError; }): { readonly tag: CoreCryptoError_Tags.Proteus; readonly inner: Readonly<{ exception: ProteusError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { exception: ProteusError; }): { readonly tag: CoreCryptoError_Tags.Proteus; readonly inner: Readonly<{ exception: ProteusError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: CoreCryptoError_Tags.Proteus; readonly inner: Readonly<{ exception: ProteusError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: CoreCryptoError_Tags.Proteus; readonly inner: Readonly<{ exception: ProteusError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: CoreCryptoError_Tags.Proteus; readonly inner: Readonly<{ exception: ProteusError; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ exception: ProteusError; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; E2ei: { new (inner: { e2eiError: string; }): { readonly tag: CoreCryptoError_Tags.E2ei; readonly inner: Readonly<{ e2eiError: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { e2eiError: string; }): { readonly tag: CoreCryptoError_Tags.E2ei; readonly inner: Readonly<{ e2eiError: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: CoreCryptoError_Tags.E2ei; readonly inner: Readonly<{ e2eiError: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: CoreCryptoError_Tags.E2ei; readonly inner: Readonly<{ e2eiError: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: CoreCryptoError_Tags.E2ei; readonly inner: Readonly<{ e2eiError: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ e2eiError: string; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorOpt?: Function): void; prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any; stackTraceLimit: number; isError(value: unknown): value is Error; }; TransactionFailed: { new (inner: { error: string; }): { readonly tag: CoreCryptoError_Tags.TransactionFailed; readonly inner: Readonly<{ error: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; "new"(inner: { error: string; }): { readonly tag: CoreCryptoError_Tags.TransactionFailed; readonly inner: Readonly<{ error: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; instanceOf(obj: any): obj is { readonly tag: CoreCryptoError_Tags.TransactionFailed; readonly inner: Readonly<{ error: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; hasInner(obj: any): obj is { readonly tag: CoreCryptoError_Tags.TransactionFailed; readonly inner: Readonly<{ error: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }; getInner(obj: { readonly tag: CoreCryptoError_Tags.TransactionFailed; readonly inner: Readonly<{ error: string; }>; /** * @private * This field is private and should not be used, use `tag` instead. */ readonly [uniffiTypeNameSymbol]: "CoreCryptoError"; name: string; message: string; stack?: string; cause?: unknown; }): Readonly<{ error: string; }>; captureStackTrace(targetObject: object, constructorOpt?: Function): void; captureStackTrace(targetObject: object, constructorO