import type { General, GestaltInvite, VaultShare, Notification, SignedNotification } from './types.js'; import type { NodeId, VaultId, NotificationId } from '../ids/types.js'; import type { KeyPairLocked } from '../keys/types.js'; import { createNotificationIdGenerator } from '../ids/index.js'; declare function constructGestaltInviteMessage(nodeId: NodeId): string; /** * Dummy for now */ declare function constructVaultShareMessage(vaultId: VaultId): string; /** * Sign and encode a notification so it can be sent. Encoded as a * SignJWT type (Compact JWS formatted JWT string). */ declare function generateNotification(notification: Notification, keyPair: KeyPairLocked): Promise; /** * Verify, decode, validate, and return a notification. Assumes it was signed * using signNotification as a SignJWT. */ declare function verifyAndDecodeNotif(signedNotification: SignedNotification, nodeId: NodeId): Promise; /** * JSON schema validator for a notification type */ declare function assertNotification(notification: unknown): asserts notification is Notification; declare function parseNotification(signedNotification: unknown): Notification; /** * JSON schema validator for a General notification's data field */ declare function assertGeneral(general: unknown): asserts general is General; /** * JSON schema validator for a GestaltInvite notification's data field */ declare function assertGestaltInvite(gestaltInvite: unknown): asserts gestaltInvite is GestaltInvite; /** * JSON schema validator for a VaultShare notification's data field */ declare function assertVaultShare(vaultShare: unknown): asserts vaultShare is VaultShare; declare function extractFromSeek(seek: NotificationId | number | Date, randomSource?: (size: number) => Uint8Array): { notificationId: NotificationId; timestamp: number; }; export { createNotificationIdGenerator, generateNotification, verifyAndDecodeNotif, constructGestaltInviteMessage, constructVaultShareMessage, assertNotification, parseNotification, assertGeneral, assertGestaltInvite, assertVaultShare, extractFromSeek, }; export { encodeNotificationId, decodeNotificationId } from '../ids/index.js';