import { NappletMessage, DmConversationQuery, DmError, DmConversationPage, DmStatus, DmMessagePage, DmSendResult, DmSubscription, DmOk, DmMessage, DmMessageQuery, DmSendRequest, DmSubscribeRequest } from '@napplet/core'; export { DmConversation, DmConversationPage, DmConversationQuery, DmError, DmHexPubkey, DmMessage, DmMessagePage, DmMessageQuery, DmMessageStatus, DmOk, DmPeer, DmSendRequest, DmSendResult, DmStatus, DmSubscribeRequest, DmSubscription, DmTimestamp } from '@napplet/core'; /** * Napplet NAP dm types entrypoint. * * @module */ /** * @napplet/nap/dm -- Runtime-mediated direct message types for NAP-DM. * * The runtime owns signing, encryption, relay routing, storage, key/session * state, and policy. Napplets receive normalized conversations and messages. */ /** The NAP domain name for direct message operations. */ declare const DOMAIN: "dm"; /** Base interface for all DM NAP messages. */ interface DmMessageEnvelope extends NappletMessage { /** Message type in "dm." format. */ type: `dm.${string}`; } type DmResultError = DmError & { [K in keyof TSuccess]?: undefined; }; type DmResultMessage = (TEnvelope & TSuccess & { error?: undefined; }) | (TEnvelope & DmResultError); /** Request current DM availability. */ interface DmStatusMessage extends DmMessageEnvelope { type: 'dm.status'; id: string; } /** Result of `dm.status`. */ interface DmStatusResultEnvelope extends DmMessageEnvelope { type: 'dm.status.result'; id: string; } type DmStatusResultMessage = DmResultMessage; /** Request normalized DM conversations. */ interface DmConversationsMessage extends DmMessageEnvelope, DmConversationQuery { type: 'dm.conversations'; id: string; } /** Result of `dm.conversations`. */ interface DmConversationsResultEnvelope extends DmMessageEnvelope { type: 'dm.conversations.result'; id: string; } type DmConversationsResultMessage = DmResultMessage; /** Request message history for one conversation. */ interface DmMessagesMessage extends DmMessageEnvelope, DmMessageQuery { type: 'dm.messages'; id: string; } /** Result of `dm.messages`. */ interface DmMessagesResultEnvelope extends DmMessageEnvelope { type: 'dm.messages.result'; id: string; } type DmMessagesResultMessage = DmResultMessage; /** Ask the runtime to send a direct message. */ interface DmSendMessage extends DmMessageEnvelope, DmSendRequest { type: 'dm.send'; id: string; } /** Result of `dm.send`. */ interface DmSendResultEnvelope extends DmMessageEnvelope { type: 'dm.send.result'; id: string; } type DmSendResultMessage = DmResultMessage; /** Request live DM delivery. */ interface DmSubscribeMessage extends DmMessageEnvelope, DmSubscribeRequest { type: 'dm.subscribe'; id: string; } /** Result of `dm.subscribe`. */ interface DmSubscribeResultEnvelope extends DmMessageEnvelope { type: 'dm.subscribe.result'; id: string; } type DmSubscribeResultMessage = DmResultMessage; /** Stop live DM delivery. */ interface DmUnsubscribeMessage extends DmMessageEnvelope { type: 'dm.unsubscribe'; id: string; subscriptionId: string; } /** Result of `dm.unsubscribe`. */ interface DmUnsubscribeResultEnvelope extends DmMessageEnvelope { type: 'dm.unsubscribe.result'; id: string; } type DmUnsubscribeResultMessage = DmResultMessage; /** Shell-pushed live DM message. */ interface DmMessageEventMessage extends DmMessageEnvelope { type: 'dm.message'; subscriptionId: string; message: DmMessage; } /** Napplet -> Shell DM messages. */ type DmOutboundMessage = DmStatusMessage | DmConversationsMessage | DmMessagesMessage | DmSendMessage | DmSubscribeMessage | DmUnsubscribeMessage; /** Shell -> Napplet DM messages. */ type DmInboundMessage = DmStatusResultMessage | DmConversationsResultMessage | DmMessagesResultMessage | DmSendResultMessage | DmSubscribeResultMessage | DmUnsubscribeResultMessage | DmMessageEventMessage; /** All DM NAP message types. */ type DmNapMessage = DmOutboundMessage | DmInboundMessage; export { DOMAIN, type DmConversationsMessage, type DmConversationsResultMessage, type DmInboundMessage, type DmMessageEnvelope, type DmMessageEventMessage, type DmMessagesMessage, type DmMessagesResultMessage, type DmNapMessage, type DmOutboundMessage, type DmSendMessage, type DmSendResultMessage, type DmStatusMessage, type DmStatusResultMessage, type DmSubscribeMessage, type DmSubscribeResultMessage, type DmUnsubscribeMessage, type DmUnsubscribeResultMessage };