import type { ClientManifest, JSONObject, JSONRPCResponseResult, RPCClient } from '@matrixai/rpc'; import type { GestaltIdEncoded, IdentityId, NodeIdEncoded, NotificationIdEncoded, ProviderId, VaultIdEncoded } from '../ids/index.js'; import type { GestaltAction } from '../gestalts/types.js'; import type { CommitId, VaultAction, VaultName } from '../vaults/types.js'; import type { CertificatePEM, JWKEncrypted, PublicKeyJWK } from '../keys/types.js'; import type { Notification } from '../notifications/types.js'; import type { ProviderToken } from '../identities/types.js'; import type { TokenPayload, SignedTokenEncoded } from '../tokens/types.js'; import type { AuditMetricGetTypeOverride } from './callers/auditMetricGet.js'; import type { NodeContact, NodeAddress, NodeContactAddressData } from '../nodes/types.js'; import type { AuditEventsGetTypeOverride } from './callers/auditEventsGet.js'; type ClientRPCRequestParams = JSONRPCResponseResult>; type ClientRPCResponseResult = JSONRPCResponseResult>; type StatusResultMessage = { pid: number; } & NodeIdMessage & { clientHost: string; clientPort: number; agentHost: string; agentPort: number; startTime: number; connectionsActive: number; nodesTotal: number; version: string; sourceVersion: string; stateVersion: number; networkVersion: number; versionMetadata: JSONObject; }; type IdentityMessage = { providerId: string; identityId: string; }; type ProviderSearchMessage = { authIdentityId?: string; identityId: string; disconnected: boolean; limit?: number; searchTermList?: Array; providerIdList: Array; }; type IdentityInfoMessage = IdentityMessage & { name: string; email: string; url: string; }; type AuthProcessMessage = { request?: { url: string; dataMap: Record; }; response?: { identityId: string; }; }; type ClaimIdMessage = { claimId: string; url?: string; }; type ClaimNodeMessage = NodeIdMessage & { forceInvite?: boolean; }; type TokenMessage = { token: ProviderToken; }; type IdentityResponseData = TokenPayload & { jti: string; exp: number; iss: NodeIdEncoded; }; type TokenIdentityResponse = SignedTokenEncoded; type NodeIdMessage = { nodeIdEncoded: NodeIdEncoded; }; type AddressMessage = { host: string; port: number; }; type NodeAddressMessage = NodeIdMessage & AddressMessage; type NodesFindMessage = { nodeAddress: NodeAddress; nodeContactAddressData: NodeContactAddressData; }; type NodesGetMessage = NodeIdMessage & { nodeContact: NodeContact; bucketIndex: number; }; type NodesAddMessage = NodeAddressMessage & { force?: boolean; ping?: boolean; }; type NodeConnectionMessage = NodeAddressMessage & { hostname: string; usageCount: number; timeout: number; authenticated: boolean; }; type ActionsListMessage = { actionsList: Array; }; type SetIdentityActionMessage = IdentityMessage & { action: GestaltAction; }; type SetNodeActionMessage = NodeIdMessage & { action: GestaltAction; }; type GestaltMessage = { gestalt: { matrix: Record>; nodes: Record; identities: Record; }; }; type CertMessage = { cert: CertificatePEM; }; type DataMessage = { data: string; }; type PublicKeyMessage = { publicKeyJwk: PublicKeyJWK; }; type PrivateKeyMessage = { privateKeyJwe: JWKEncrypted; }; type DecryptMessage = DataMessage & PublicKeyMessage; type PasswordMessage = { password: string; }; type KeyPairMessage = PrivateKeyMessage & PublicKeyMessage; type SignatureMessage = { signature: string; }; type VerifySignatureMessage = PublicKeyMessage & DataMessage & SignatureMessage; type SuccessMessage = { success: boolean; }; type SuccessMessageTagged = { type: 'SuccessMessage'; success: boolean; }; type ErrorMessageTagged = { type: 'ErrorMessage'; code?: string | number; reason?: string; data?: JSONObject; }; type SuccessOrErrorMessageTagged = SuccessMessageTagged | ErrorMessageTagged; type NotificationReadMessage = { seek?: NotificationIdEncoded | number; seekEnd?: NotificationIdEncoded | number; unread?: boolean; limit?: number; order?: 'asc' | 'desc'; }; type NotificationOutboxReadMessage = Omit; type NotificationInboxMessage = { notification: Notification; }; type NotificationOutboxMessage = { notification: Notification; taskMetadata?: { remainingRetries: number; created: number; scheduled: number; }; }; type NotificationSendMessage = NodeIdMessage & { message: string; blocking?: boolean; retries?: number; }; type NotificationRemoveMessage = { notificationIdEncoded: NotificationIdEncoded; }; type VaultNameMessage = { vaultName: VaultName; }; type VaultIdMessage = { vaultIdEncoded: VaultIdEncoded; }; type VaultIdentifierMessage = { nameOrId: VaultIdEncoded | VaultName; }; type CloneMessage = NodeIdMessage & VaultIdentifierMessage; type VaultListMessage = VaultNameMessage & VaultIdMessage; type VaultsLogMessage = VaultIdentifierMessage & { depth?: number; commitId?: string; }; type LogEntryMessage = { commitId: CommitId; committer: string; timestamp: string; message: string; }; type VaultPermissionMessage = VaultIdMessage & NodeIdMessage & { vaultPermissionList: Array; }; type PermissionSetMessage = VaultIdentifierMessage & NodeIdMessage & { vaultPermissionList: Array; }; type VaultsPullMessage = Partial & { pullVault: VaultIdEncoded | VaultName; }; type VaultsRenameMessage = VaultIdentifierMessage & { newName: VaultName; }; type VaultsScanMessage = VaultListMessage & { permissions: Array; }; type VaultsVersionMessage = VaultIdentifierMessage & { versionId: string; }; type VaultsLatestVersionMessage = { latestVersion: boolean; }; type SecretPathMessage = { secretName: string; }; type SecretIdentifierMessage = VaultIdentifierMessage & SecretPathMessage; type ContentMessage = { secretContent: string; }; type ContentSuccessMessage = ContentMessage & SuccessMessageTagged; type ContentOrErrorMessage = ContentSuccessMessage | ErrorMessageTagged; type SecretContentMessage = SecretIdentifierMessage & ContentMessage; type SecretContentSuccessMessage = SecretIdentifierMessage & ContentSuccessMessage; type SecretContentOrErrorMessage = SecretContentSuccessMessage | ErrorMessageTagged; type SecretDirMessage = VaultIdentifierMessage & { dirName: string; }; type SecretRenameMessage = SecretIdentifierMessage & { newSecretName: string; }; type SecretFilesMessage = { path: string; type: 'FILE' | 'DIRECTORY'; }; type SecretStatMessage = { stat: { dev: number; ino: number; mode: number; nlink: number; uid: number; gid: number; rdev: number; size: number; atime: string; mtime: string; ctime: string; birthtime: string; blksize: number; blocks: number; }; }; type SecretIdentifierMessageTagged = SecretIdentifierMessage & { type: 'SecretIdentifierMessage'; }; type VaultNamesHeaderMessageTagged = { type: 'VaultNamesHeaderMessage'; vaultNames: Array; }; type SecretsRemoveHeaderMessage = VaultNamesHeaderMessageTagged & { recursive?: boolean; }; type OverrideRPClientType> = Omit & { methods: { auditEventsGet: AuditEventsGetTypeOverride; auditMetricGet: AuditMetricGetTypeOverride; } & Omit; }; export type { ClientRPCRequestParams, ClientRPCResponseResult, StatusResultMessage, IdentityMessage, ProviderSearchMessage, IdentityInfoMessage, AuthProcessMessage, ClaimIdMessage, ClaimNodeMessage, TokenMessage, IdentityResponseData, TokenIdentityResponse, NodeIdMessage, AddressMessage, NodeAddressMessage, NodesFindMessage, NodeConnectionMessage, ActionsListMessage, SetIdentityActionMessage, SetNodeActionMessage, GestaltMessage, CertMessage, DataMessage, PublicKeyMessage, PrivateKeyMessage, DecryptMessage, KeyPairMessage, VerifySignatureMessage, PasswordMessage, NodesGetMessage, NodesAddMessage, SuccessMessage, SuccessMessageTagged, ErrorMessageTagged, SuccessOrErrorMessageTagged, NotificationInboxMessage, NotificationOutboxMessage, NotificationReadMessage, NotificationOutboxReadMessage, NotificationSendMessage, NotificationRemoveMessage, VaultNameMessage, VaultIdMessage, VaultIdentifierMessage, CloneMessage, VaultListMessage, VaultsLogMessage, LogEntryMessage, VaultPermissionMessage, PermissionSetMessage, VaultsPullMessage, VaultsRenameMessage, VaultsScanMessage, VaultsVersionMessage, VaultsLatestVersionMessage, SecretPathMessage, SecretIdentifierMessage, ContentMessage, SecretContentMessage, ContentSuccessMessage, ContentOrErrorMessage, SecretContentSuccessMessage, SecretContentOrErrorMessage, SecretDirMessage, SecretRenameMessage, SecretFilesMessage, SecretStatMessage, SecretIdentifierMessageTagged, VaultNamesHeaderMessageTagged, SecretsRemoveHeaderMessage, SignatureMessage, OverrideRPClientType, AuditMetricGetTypeOverride, };