import { NappletMessage, ListRef, ListItem, ListOptions, ListMutationResult, ListSupport } from '@napplet/core'; export { ListErrorCode, ListItem, ListItemType, ListItemVisibility, ListMutationResult, ListOptions, ListRef, ListSupport } from '@napplet/core'; /** * Napplet NAP lists types entrypoint. * * @module */ /** * @napplet/nap/lists -- Runtime-mediated NIP-51 list mutation message types. * * NAP-LISTS lets a napplet ask the runtime to add or remove semantic items from * supported NIP-51 lists. The runtime owns lookup, kind/type mapping, tag * formatting, private item encryption, event preservation, signing, and * publishing. */ /** The NAP domain name for runtime-mediated list mutations. */ declare const DOMAIN: "lists"; /** Base interface for all lists NAP messages. */ interface ListsMessage extends NappletMessage { /** Message type in "lists." format. */ type: `lists.${string}`; } /** Request the runtime's supported NIP-51 list set. */ interface ListsSupportedMessage extends ListsMessage { type: 'lists.supported'; /** Correlation ID for this request. */ id: string; } /** Result of a `lists.supported` request. */ interface ListsSupportedResultMessage extends ListsMessage { type: 'lists.supported.result'; /** Correlation ID matching the original request. */ id: string; /** Supported NIP-51 list kinds/types. */ lists?: ListSupport[]; /** Top-level error if supported lists could not be reported. */ error?: string; } /** Request that the runtime add items to a NIP-51 list. */ interface ListsAddMessage extends ListsMessage { type: 'lists.add'; /** Correlation ID for this request. */ id: string; /** List reference by kind or derived type. */ list: ListRef; /** Items to add. */ items: ListItem[]; /** Optional create/metadata hints. */ options?: ListOptions; } /** Result of a `lists.add` request. */ interface ListsAddResultMessage extends ListsMessage, Omit { type: 'lists.add.result'; /** Correlation ID matching the original request. */ id: string; } /** Request that the runtime remove items from a NIP-51 list. */ interface ListsRemoveMessage extends ListsMessage { type: 'lists.remove'; /** Correlation ID for this request. */ id: string; /** List reference by kind or derived type. */ list: ListRef; /** Items to remove. */ items: ListItem[]; /** Optional runtime hints. */ options?: ListOptions; } /** Result of a `lists.remove` request. */ interface ListsRemoveResultMessage extends ListsMessage, Omit { type: 'lists.remove.result'; /** Correlation ID matching the original request. */ id: string; } /** Napplet -> runtime lists messages. */ type ListsOutboundMessage = ListsSupportedMessage | ListsAddMessage | ListsRemoveMessage; /** Runtime -> napplet lists messages. */ type ListsInboundMessage = ListsSupportedResultMessage | ListsAddResultMessage | ListsRemoveResultMessage; /** All lists NAP message types. */ type ListsNapMessage = ListsOutboundMessage | ListsInboundMessage; export { DOMAIN, type ListsAddMessage, type ListsAddResultMessage, type ListsInboundMessage, type ListsMessage, type ListsNapMessage, type ListsOutboundMessage, type ListsRemoveMessage, type ListsRemoveResultMessage, type ListsSupportedMessage, type ListsSupportedResultMessage };