import { NappletGlobal } from '@napplet/core'; export { EventTemplate, NAP_DOMAINS, NapDomain, NappletMessage, NostrEvent, NostrFilter, RelayEventResult, RelayEventSidecar, Subscription } from '@napplet/core'; export { DOMAIN as RELAY_DOMAIN, RelayCloseMessage, RelayClosedMessage, RelayEoseMessage, RelayEventMessage, RelayInboundMessage, RelayMessage, RelayNapMessage, RelayOutboundMessage, RelayPublishEncryptedMessage, RelayPublishEncryptedResultMessage, RelayPublishMessage, RelayPublishResultMessage, RelayQueryMessage, RelayQueryResultMessage, RelaySubscribeMessage, installRelayShim, relayPublish, relayPublishEncrypted, relayQuery, relaySubscribe } from '@napplet/nap/relay'; export { Badge, DOMAIN as IDENTITY_DOMAIN, IdentityChangedMessage, IdentityGetBadgesMessage, IdentityGetBadgesResultMessage, IdentityGetBlockedMessage, IdentityGetBlockedResultMessage, IdentityGetFollowsMessage, IdentityGetFollowsResultMessage, IdentityGetListMessage, IdentityGetListResultMessage, IdentityGetMutesMessage, IdentityGetMutesResultMessage, IdentityGetProfileMessage, IdentityGetProfileResultMessage, IdentityGetPublicKeyMessage, IdentityGetPublicKeyResultMessage, IdentityGetRelaysMessage, IdentityGetRelaysResultMessage, IdentityGetZapsMessage, IdentityGetZapsResultMessage, IdentityMessage, IdentityNapMessage, RelayPermission as IdentityRelayPermission, IdentityRequestMessage, IdentityResultMessage, ProfileData, ZapReceipt, identityGetBadges, identityGetBlocked, identityGetFollows, identityGetList, identityGetMutes, identityGetProfile, identityGetPublicKey, identityGetRelays, identityGetZaps, identityOnChanged, installIdentityShim } from '@napplet/nap/identity'; export { DOMAIN as STORAGE_DOMAIN, StorageGetMessage, StorageGetResultMessage, StorageKeysMessage, StorageKeysResultMessage, StorageMessage, StorageNapMessage, StorageRemoveMessage, StorageRemoveResultMessage, StorageRequestMessage, StorageResultMessage, StorageSetMessage, StorageSetResultMessage, installStorageShim, storageGetItem, storageInstanceGetItem, storageInstanceKeys, storageInstanceRemoveItem, storageInstanceSetItem, storageKeys, storageRemoveItem, storageSetItem } from '@napplet/nap/storage'; export { DOMAIN as INC_DOMAIN, IncChannelBroadcastMessage, IncChannelCloseMessage, IncChannelClosedMessage, IncChannelEmitMessage, IncChannelEventMessage, IncChannelListMessage, IncChannelListResultMessage, IncChannelMessage, IncChannelOpenMessage, IncChannelOpenResultMessage, IncEmitMessage, IncEventMessage, IncInboundMessage, IncMessage, IncNapMessage, IncOutboundMessage, IncSubscribeMessage, IncSubscribeResultMessage, IncTopicMessage, IncUnsubscribeMessage, incEmit, incOn, installIncShim } from '@napplet/nap/inc'; export { DOMAIN as IFC_DOMAIN, IfcChannelBroadcastMessage, IfcChannelCloseMessage, IfcChannelClosedMessage, IfcChannelEmitMessage, IfcChannelEventMessage, IfcChannelListMessage, IfcChannelListResultMessage, IfcChannelMessage, IfcChannelOpenMessage, IfcChannelOpenResultMessage, IfcEmitMessage, IfcEventMessage, IfcInboundMessage, IfcMessage, IfcNapMessage, IfcOutboundMessage, IfcSubscribeMessage, IfcSubscribeResultMessage, IfcTopicMessage, IfcUnsubscribeMessage, ifcEmit, ifcOn, installIfcShim } from '@napplet/nap/ifc'; export { DOMAIN as THEME_DOMAIN, Theme, ThemeBackground, ThemeChangedMessage, ThemeColors, ThemeFont, ThemeGetMessage, ThemeGetResultMessage, ThemeMessage, ThemeNapMessage, ThemeRequestMessage, ThemeResultMessage, installThemeShim, themeGet, themeOnChanged } from '@napplet/nap/theme'; export { Action, DOMAIN as KEYS_DOMAIN, KeyBinding, KeysActionMessage, KeysBindingsMessage, KeysForwardMessage, KeysMessage, KeysNapMessage, KeysRegisterActionMessage, KeysRegisterActionResultMessage, KeysRequestMessage, KeysResultMessage, KeysUnregisterActionMessage, RegisterResult, installKeysShim, keysOnAction, keysRegister, keysRegisterAction, keysUnregisterAction } from '@napplet/nap/keys'; export { DOMAIN as MEDIA_DOMAIN, MediaAction, MediaArtwork, MediaCapabilitiesMessage, MediaCommandMessage, MediaContextLink, MediaControlsMessage, MediaMessage, MediaMetadata, MediaNapMessage, MediaNostrRef, MediaPlaybackOwner, MediaRequestMessage, MediaResultMessage, MediaSessionContext, MediaSessionCreate, MediaSessionCreateMessage, MediaSessionCreateResultMessage, MediaSessionDestroyMessage, MediaSessionResult, MediaSessionUpdateMessage, MediaSourceRef, MediaState, MediaStateMessage, installMediaShim, mediaCreateSession, mediaDestroySession, mediaOnCapabilities, mediaOnCommand, mediaOnControls, mediaOnState, mediaReportCapabilities, mediaReportState, mediaSendCommand, mediaUpdateSession } from '@napplet/nap/media'; export { DOMAIN as NOTIFY_DOMAIN, NotificationAction, NotificationChannel, NotificationPriority, NotifyActionMessage, NotifyBadgeMessage, NotifyChannelRegisterMessage, NotifyClickedMessage, NotifyControl, NotifyControlsMessage, NotifyDismissMessage, NotifyDismissedMessage, NotifyMessage, NotifyNapMessage, NotifyPermissionRequestMessage, NotifyPermissionResultMessage, NotifyRequestMessage, NotifyResultMessage, NotifySendMessage, NotifySendResultMessage, installNotifyShim, notifyBadge, notifyDismiss, notifyOnAction, notifyOnClicked, notifyOnControls, notifyOnDismissed, notifyRegisterChannel, notifyRequestPermission, notifySend } from '@napplet/nap/notify'; export { DOMAIN as CONFIG_DOMAIN, ConfigGetMessage, ConfigMessage, ConfigNapMessage, ConfigOpenSettingsMessage, ConfigRegisterSchemaMessage, ConfigRegisterSchemaResultMessage, ConfigRequestMessage, ConfigResultMessage, ConfigSchema, ConfigSchemaErrorCode, ConfigSchemaErrorMessage, ConfigSubscribeMessage, ConfigUnsubscribeMessage, ConfigValues, ConfigValuesMessage, NappletConfigSchema, NappletConfigSchemaExtensions, installConfigShim } from '@napplet/nap/config'; export { DOMAIN as RESOURCE_DOMAIN, ResourceBytesErrorItem, ResourceBytesErrorMessage, ResourceBytesItem, ResourceBytesManyErrorMessage, ResourceBytesManyMessage, ResourceBytesManyResultMessage, ResourceBytesMessage, ResourceBytesOkItem, ResourceBytesResultMessage, ResourceCancelMessage, ResourceErrorCode, ResourceMessage, ResourceNapMessage, ResourceRequestMessage, ResourceResultMessage, ResourceScheme, ResourceSidecarEntry, installResourceShim, resourceBytes, resourceBytesAsObjectURL, resourceBytesMany, resourceInfo } from '@napplet/nap/resource'; export { DOMAIN as CVM_DOMAIN, CvmCloseMessage, CvmCloseResultMessage, CvmDiscoverMessage, CvmDiscoverQuery, CvmDiscoverResultMessage, CvmEventMessage, CvmInboundMessage, CvmMessage, CvmNapMessage, CvmOutboundMessage, CvmRegistryCallMessage, CvmRegistryCallOptions, CvmRegistryCallResultMessage, CvmRegistryDescribeMessage, CvmRegistryDescribeResultMessage, CvmRegistryEntry, CvmRegistryHasMessage, CvmRegistryHasResultMessage, CvmRegistryListMessage, CvmRegistryListResultMessage, CvmRegistryOptions, CvmRegistryQuery, CvmRegistryTool, CvmRequestMessage, CvmRequestOptions, CvmRequestResultMessage, CvmServer, CvmServerRef, JsonObject, JsonSchema, McpBlobResourceContents, McpContentBlock, McpMessage, McpResource, McpResourceContent, McpTextResourceContents, McpTool, McpToolResult, cvmCallTool, cvmClose, cvmDiscover, cvmListResources, cvmListTools, cvmOnEvent, cvmReadResource, cvmRegistryCall, cvmRegistryDescribe, cvmRegistryHas, cvmRegistryList, cvmRequest, installCvmShim } from '@napplet/nap/cvm'; export { DOMAIN as OUTBOX_DOMAIN, OutboxCloseMessage, OutboxClosedMessage, OutboxEventMessage, OutboxEventOptions, OutboxEventResult, OutboxGetEventMessage, OutboxGetEventResultMessage, OutboxInboundMessage, OutboxMessage, OutboxNapMessage, OutboxOutboundMessage, OutboxPublishMessage, OutboxPublishOptions, OutboxPublishResult, OutboxPublishResultMessage, OutboxQueryMessage, OutboxQueryOptions, OutboxQueryResultMessage, OutboxRelayPlan, OutboxResolveRelaysMessage, OutboxResolveRelaysResultMessage, OutboxResult, OutboxSubscribeMessage, OutboxSubscribeOptions, OutboxSubscription, OutboxTarget, installOutboxShim, outboxGetEvent, outboxPublish, outboxQuery, outboxResolveRelays, outboxSubscribe } from '@napplet/nap/outbox'; export { NostrTag, DOMAIN as UPLOAD_DOMAIN, UploadDimensions, UploadInboundMessage, UploadMessage, UploadNapMessage, UploadOutboundMessage, UploadRail, UploadRequest, UploadResult, UploadState, UploadStatus, UploadStatusChangedMessage, UploadStatusMessage, UploadStatusResultMessage, UploadUploadMessage, UploadUploadResultMessage, installUploadShim, uploadFile, uploadInfo, uploadOnStatus, uploadStatus } from '@napplet/nap/upload'; export { DOMAIN as INTENT_DOMAIN, IntentAvailability, IntentAvailableMessage, IntentAvailableResultMessage, IntentBehavior, IntentCandidate, IntentChangedMessage, IntentHandlerPreference, IntentHandlersMessage, IntentHandlersResultMessage, IntentInboundMessage, IntentInvokeMessage, IntentInvokeResultMessage, IntentMessage, IntentNapMessage, IntentOpenOptions, IntentOutboundMessage, IntentRequest, IntentResult, installIntentShim, intentAvailable, intentHandlers, intentInvoke, intentOnChanged, intentOpen } from '@napplet/nap/intent'; export { DOMAIN as BLE_DOMAIN, BleApi, BleAttribute, BleCharacteristic, BleCharacteristicProperties, BleCloseMessage, BleCloseResultMessage, BleClosedEvent, BleDeviceFilter, BleDeviceInfo, BleEvent, BleEventMessage, BleInboundMessage, BleManufacturerDataFilter, BleMessage, BleNapMessage, BleNotificationEvent, BleOpenMessage, BleOpenRequest, BleOpenResult, BleOpenResultMessage, BleOutboundMessage, BleReadMessage, BleReadResultMessage, BleService, BleServiceDataFilter, BleServicesMessage, BleServicesResultMessage, BleSession, BleSessionState, BleStateEvent, BleSubscribeMessage, BleSubscribeResultMessage, BleUnsubscribeMessage, BleUnsubscribeResultMessage, BleUuid, BleWriteMessage, BleWriteOptions, BleWriteResultMessage, bleClose, bleOnEvent, bleOpen, bleRead, bleServices, bleSubscribe, bleUnsubscribe, bleWrite, installBleShim } from '@napplet/nap/ble'; export { DOMAIN as WEBRTC_DOMAIN, WebrtcApi, WebrtcCloseMessage, WebrtcCloseResultMessage, WebrtcClosedEvent, WebrtcDirectScope, WebrtcEvent, WebrtcEventMessage, WebrtcInboundMessage, WebrtcMessage, WebrtcMessageEvent, WebrtcNapMessage, WebrtcOpenMessage, WebrtcOpenRequest, WebrtcOpenResult, WebrtcOpenResultMessage, WebrtcOutboundMessage, WebrtcPeerEvent, WebrtcRoomScope, WebrtcScope, WebrtcSendMessage, WebrtcSendResultMessage, WebrtcSession, WebrtcState, WebrtcStateEvent, installWebrtcShim, webrtcClose, webrtcOnEvent, webrtcOpen, webrtcSend } from '@napplet/nap/webrtc'; export { DOMAIN as LINK_DOMAIN, LinkInboundMessage, LinkMessage, LinkNapMessage, LinkOpenErrorCode, LinkOpenMessage, LinkOpenOptions, LinkOpenResult, LinkOpenResultMessage, LinkOpenStatus, LinkOutboundMessage, installLinkShim, linkOpen } from '@napplet/nap/link'; export { DOMAIN as COUNT_DOMAIN, CountFilter, CountInboundMessage, CountMessage, CountNapMessage, CountOptions, CountOutboundMessage, CountQueryMessage, CountQueryResultMessage, CountResult, countQuery, installCountShim } from '@napplet/nap/count'; export { DOMAIN as LISTS_DOMAIN, ListErrorCode, ListItem, ListItemType, ListItemVisibility, ListMutationResult, ListOptions, ListRef, ListSupport, ListsAddMessage, ListsAddResultMessage, ListsInboundMessage, ListsMessage, ListsNapMessage, ListsOutboundMessage, ListsRemoveMessage, ListsRemoveResultMessage, ListsSupportedMessage, ListsSupportedResultMessage, installListsShim, listsAdd, listsRemove, listsSupported } from '@napplet/nap/lists'; export { DOMAIN as COMMON_DOMAIN, CommonActionResult, CommonDecodeNip19Message, CommonDecodeNip19ResultMessage, CommonEncodeNip19Message, CommonEncodeNip19ResultMessage, CommonEventReportTarget, CommonFollowMessage, CommonFollowResultMessage, CommonFollowsMessage, CommonFollowsResult, CommonFollowsResultMessage, CommonGetProfileMessage, CommonGetProfileResultMessage, CommonInboundMessage, CommonMessage, CommonNapMessage, CommonNip19DecodeResult, CommonNip19EncodeInput, CommonNip19EncodeResult, CommonNip19Type, CommonOutboundMessage, CommonProfileData, CommonProfileResult, CommonProfileTarget, CommonPubkeyReportTarget, CommonReactMessage, CommonReactResultMessage, CommonReaction, CommonReportMessage, CommonReportReason, CommonReportResultMessage, CommonReportTarget, CommonUnfollowMessage, CommonUnfollowResultMessage, commonDecodeNip19, commonEncodeNip19, commonFollow, commonFollows, commonGetProfile, commonReact, commonReport, commonUnfollow, installCommonShim } from '@napplet/nap/common'; export { DOMAIN as SERIAL_DOMAIN, SerialCloseMessage, SerialCloseResultMessage, SerialEvent, SerialEventMessage, SerialInboundMessage, SerialMessage, SerialNapMessage, SerialOpenMessage, SerialOpenOptions, SerialOpenRequest, SerialOpenResult, SerialOpenResultMessage, SerialOutboundMessage, SerialPortFilter, SerialPortInfo, SerialSession, SerialState, SerialWriteMessage, SerialWriteResultMessage, installSerialShim, serialClose, serialOnEvent, serialOpen, serialWrite } from '@napplet/nap/serial'; export { DOMAIN as FS_DOMAIN, FsAcceptRule, FsChange, FsChangeKind, FsChangedMessage, FsDirectoryEntry, FsEntryKind, FsError, FsInboundMessage, FsInfo, FsInfoMessage, FsInfoResultMessage, FsLimits, FsListMessage, FsListResultMessage, FsMessage, FsMetadata, FsMkdirMessage, FsMkdirOptions, FsMkdirResultMessage, FsMoveMessage, FsMoveResultMessage, FsNapMessage, FsOutboundMessage, FsPermission, FsPickDirectoryMessage, FsPickDirectoryResultMessage, FsPickFileMessage, FsPickFileResultMessage, FsPickFilesMessage, FsPickFilesResultMessage, FsPickOptions, FsPickResult, FsPickSaveFileMessage, FsPickSaveFileResultMessage, FsPickedEntry, FsReadMessage, FsReadOptions, FsReadResult, FsReadResultMessage, FsRemoveMessage, FsRemoveResultMessage, FsRoot, FsStatMessage, FsStatResultMessage, FsUnwatchMessage, FsUnwatchResultMessage, FsWatchMessage, FsWatchOptions, FsWatchResultMessage, FsWriteMessage, FsWriteMode, FsWriteOptions, FsWriteResult, FsWriteResultMessage, fsInfo, fsList, fsMkdir, fsMove, fsOnChanged, fsPickDirectory, fsPickFile, fsPickFiles, fsPickSaveFile, fsRead, fsRemove, fsStat, fsUnwatch, fsWatch, fsWrite, installFsShim } from '@napplet/nap/fs'; export { DOMAIN as DM_DOMAIN, DmConversation, DmConversationPage, DmConversationQuery, DmConversationsMessage, DmConversationsResultMessage, DmError, DmHexPubkey, DmInboundMessage, DmMessage, DmMessageEnvelope, DmMessageEventMessage, DmMessagePage, DmMessageQuery, DmMessageStatus, DmMessagesMessage, DmMessagesResultMessage, DmNapMessage, DmOk, DmOutboundMessage, DmPeer, DmSendMessage, DmSendRequest, DmSendResult, DmSendResultMessage, DmStatus, DmStatusMessage, DmStatusResultMessage, DmSubscribeMessage, DmSubscribeRequest, DmSubscribeResultMessage, DmSubscription, DmTimestamp, DmUnsubscribeMessage, DmUnsubscribeResultMessage, dmConversations, dmMessages, dmOnMessage, dmSend, dmStatus, dmSubscribe, dmUnsubscribe, installDmShim } from '@napplet/nap/dm'; /** * @napplet/sdk -- Relay, inter-napplet pubsub, and storage wrapper objects. * * @packageDocumentation */ type SdkDomain$4 = NonNullable; /** * NIP-01 relay operations: subscribe to events, publish events, one-shot queries. * * Each method delegates to `window.napplet.relay.*` at call time, which in turn * routes through the shell's relay pool via postMessage. * * @example * ```ts * import { relay } from '@napplet/sdk'; * * const sub = relay.subscribe( * { kinds: [1], limit: 10 }, * (event) => console.log(event), * () => console.log('EOSE'), * ); * ``` */ declare const relay: SdkDomain$4<'relay'>; /** * Inter-napplet pubsub: broadcast and receive INC events through the shell. * * @example * ```ts * import { inc } from '@napplet/sdk'; * * inc.emit('napplet:profile/open', { pubkey: '...' }); * * const sub = inc.on('napplet:profile/open', (event) => { * console.log('Profile requested:', event.payload); * }); * ``` */ declare const inc: SdkDomain$4<'inc'>; /** * @deprecated Use {@link inc}. NAP-IFC was renamed to NAP-INC; this package * alias is kept only to ease downstream migration. */ declare const ifc: SdkDomain$4<'inc'>; /** * Napplet-scoped storage: async localStorage-like API proxied through the shell. * Each napplet's storage is isolated by identity. * * @example * ```ts * import { storage } from '@napplet/sdk'; * * await storage.setItem('theme', 'dark'); * const theme = await storage.getItem('theme'); // 'dark' * ``` */ declare const storage: SdkDomain$4<'storage'>; /** * @napplet/sdk -- Media session and notification wrapper objects. * * @packageDocumentation */ type SdkDomain$3 = NonNullable; /** * Media session control: create sessions, report state and metadata, * declare capabilities, receive commands from the shell. * * @example * ```ts * import { media } from '@napplet/sdk'; * * const { sessionId } = await media.createSession({ * owner: 'napplet', * metadata: { title: 'My Song', artist: 'The Artist' }, * }); * * media.reportState(sessionId, { status: 'playing', position: 42.5 }); * ``` */ declare const media: SdkDomain$3<'media'>; /** * Shell-rendered notifications: send notifications, set badge counts, * register channels, request permission, listen for user interaction. * * @example * ```ts * import { notify } from '@napplet/sdk'; * * const { notificationId } = await notify.send({ * title: 'New message', body: 'Alice: hey!', * }); * * notify.badge(3); * ``` */ declare const notify: SdkDomain$3<'notify'>; /** * @napplet/sdk -- Keyboard action and read-only identity wrapper objects. * * @packageDocumentation */ type SdkDomain$2 = NonNullable; interface KeysSdk extends SdkDomain$2<'keys'> { register(action: { id: string; label: string; defaultKey?: string; }, handler: () => void): Promise<{ actionId: string; binding?: string; close: () => void; }>; } /** * Keyboard forwarding and action keybindings: register named actions the shell * can bind to keys, listen for shell-triggered actions locally. * * @example * ```ts * import { keys } from '@napplet/sdk'; * * const result = await keys.registerAction({ * id: 'editor.save', * label: 'Save', * defaultKey: 'Ctrl+S', * }); * * const sub = keys.onAction('editor.save', () => { * console.log('Save triggered!'); * }); * ``` */ declare const keys: KeysSdk; /** * Read-only user identity queries: public key, profile, follows, relays, * lists, zaps, mutes, blocked, badges. * * @example * ```ts * import { identity } from '@napplet/sdk'; * * const pubkey = await identity.getPublicKey(); * const profile = await identity.getProfile(); * const follows = await identity.getFollows(); * ``` */ declare const identity: SdkDomain$2<'identity'>; /** * @napplet/sdk -- Declarative config and resource byte-fetch wrapper objects. * * @packageDocumentation */ type SdkDomain$1 = NonNullable; /** * Per-napplet declarative configuration (NAP-CONFIG): register a schema, * read current values, subscribe to live updates, deep-link into the * shell-owned settings UI, and listen for schema errors. * * @example * ```ts * import { config } from '@napplet/sdk'; * * await config.registerSchema({ * type: 'object', * properties: { theme: { type: 'string', enum: ['light', 'dark'], default: 'dark' } }, * }); * * const sub = config.subscribe((values) => { applyTheme(values.theme); }); * * config.openSettings({ section: 'appearance' }); * ``` */ declare const config: SdkDomain$1<'config'>; /** * Browser-enforced byte-fetching primitive: napplets request bytes by URL, * shell fetches and returns a Blob. URL space is scheme-pluggable * (`data:`, `https:`, `blossom:`, `htree:`, `nostr:`). * * @example * ```ts * import { resource } from '@napplet/sdk'; * * const blob = await resource.bytes('https://example.com/avatar.png'); * const items = await resource.bytesMany([ * 'https://example.com/a.png', * 'htree://example-root/path', * ]); * const handle = resource.bytesAsObjectURL('blossom:abc123...'); * imgEl.src = handle.url; * imgEl.onload = () => handle.revoke(); * ``` */ declare const resource: SdkDomain$1<'resource'>; /** Non-nullable SDK domain surface. */ type SdkDomain = NonNullable; /** * Native ContextVM bridge (NAP-CVM): MCP-over-Nostr access mediated by the shell. * The shell owns ContextVM transport, signing, encryption, correlation, policy, * and payment; napplets supply a server identity and the MCP operation they want. * * @example * ```ts * import { cvm } from '@napplet/sdk'; * * const servers = await cvm.discover({ search: 'relay' }); * const tools = await cvm.listTools(servers[0]); * const result = await cvm.callTool(servers[0], tools[0].name, {}); * ``` */ declare const cvm: SdkDomain<'cvm'>; /** * Outbox-aware relay routing (NAP-OUTBOX): supply Nostr filters and intent and * let the shell discover the correct relays (NIP-65 write/read relays, fallbacks, * relay intelligence), query/deduplicate, validate signatures, and stream updates. * The shell owns relay discovery, routing, fallback, deduplication, signing, and * publish fanout. * * @example * ```ts * import { outbox } from '@napplet/sdk'; * * const { events } = await outbox.query([{ authors: ['ab12...'], kinds: [1] }], { * authors: ['ab12...'], * }); * const sub = outbox.subscribe([{ kinds: [1] }], { timeoutMs: 3000 }); * sub.on('event', (result) => render(result.event, result.sidecar?.relayHints)); * ``` */ declare const outbox: SdkDomain<'outbox'>; /** * Shell-mediated file/blob upload (NAP-UPLOAD): hand the shell raw bytes plus * upload intent; the shell selects a server, signs the rail authorization * (NIP-98 for NIP-96, kind 24242 for Blossom), performs the HTTP upload, and * returns a stable URL plus NIP-94 integrity metadata. The shell owns consent, * policy, server selection, and signing. * * @example * ```ts * import { upload } from '@napplet/sdk'; * * const result = await upload.upload({ data: blob, filename: 'pic.png' }); * if (result.status === 'complete') attach(result.url, result.nip94); * ``` */ declare const upload: SdkDomain<'upload'>; /** * Archetype intent dispatch (NAP-INTENT): invoke an installed handler by role * without directly addressing a target instance. * * @example * ```ts * import { intent } from '@napplet/sdk'; * * if ((await intent.available('note')).available) { * await intent.open('note', { event: id }, { convention: 'napplet:note/open' }); * } * ``` */ declare const intent: SdkDomain<'intent'>; /** * Runtime-mediated WebRTC sessions (NAP-WEBRTC). The shell owns signaling, * signing/encryption, SDP, ICE, and peer-connection lifecycle; napplets exchange * only opaque application payloads over shell-scoped sessions. * * @example * ```ts * import { webrtc } from '@napplet/sdk'; * * const { session } = await webrtc.open({ scope: { type: 'direct', pubkey } }); * await webrtc.send(session.id, { body: 'hello' }); * ``` */ declare const webrtc: SdkDomain<'webrtc'>; /** * Shell-mediated link opening (NAP-LINK): ask the shell to open an external URL * for user-visible navigation. The shell owns prompting, policy, opener * isolation, and browser context. * * @example * ```ts * import { link } from '@napplet/sdk'; * * const result = await link.open('https://example.com/post/123', { label: 'Read post' }); * ``` */ declare const link: SdkDomain<'link'>; /** * Runtime-mediated event counts (NAP-COUNT): ask the runtime to count NIP-01 * filter matches without returning matching event payloads. The runtime owns * relay selection, NIP-45 COUNT support, indexing, aggregation, approximation, * and refusal policy. * * @example * ```ts * import { count } from '@napplet/sdk'; * * const result = await count.query({ kinds: [7], '#e': [eventId] }); * ``` */ declare const count: SdkDomain<'count'>; /** * Runtime-mediated NIP-51 list mutations (NAP-LISTS): add or remove semantic * items from supported NIP-51 lists while the runtime owns lookup, merge, * encryption, signing, and publishing. * * @example * ```ts * import { lists } from '@napplet/sdk'; * * await lists.add({ type: 'mute-list' }, [ * { itemType: 'pubkey', value: 'abc123...' }, * ]); * ``` */ declare const lists: SdkDomain<'lists'>; /** * Common social actions (NAP-COMMON): shell-mediated public NIP-19 helpers, * profile lookup, follows, follow/unfollow, reactions, and reports. The shell * owns identity, consent, event construction, signing, publishing, relay access, * and NIP-19 handling. * * @example * ```ts * import { common } from '@napplet/sdk'; * * const { pubkeys } = await common.follows(); * await common.react(noteId, '+'); * ``` */ declare const common: SdkDomain<'common'>; /** * Runtime-mediated Bluetooth LE/GATT sessions (NAP-BLE): ask the shell to * select a user-approved BLE device, expose opaque sessions and GATT * attributes, and receive shell-pushed state/notification/close events. The * shell owns chooser UI, permissions, device handles, lifecycle, and policy. * * @example * ```ts * import { ble } from '@napplet/sdk'; * * const { session } = await ble.open({ acceptAllDevices: true }); * const services = await ble.services(session.id); * ``` */ declare const ble: SdkDomain<'ble'>; /** * Runtime-mediated serial device access (NAP-SERIAL): ask the shell to select * and open a user-approved serial session, write byte arrays to that session, * and receive shell-pushed state/data/close events. The shell owns raw port * handles, streams, OS paths, permissions, read loops, and lifecycle policy. * * @example * ```ts * import { serial } from '@napplet/sdk'; * * const { session } = await serial.open({ options: { baudRate: 115200 } }); * await serial.write(session.id, [112, 105, 110, 103, 10]); * ``` */ declare const serial: SdkDomain<'serial'>; /** * Shell-mediated virtual filesystem access (NAP-FS): discover visible roots, * ask the runtime to mediate file and directory selection, inspect and list * entries, read and write base64-encoded file bytes, create, remove and move * them, and subscribe to advisory change events. The runtime owns host paths, * mounts, backing store, normalization, policy, and authorization -- the * napplet sees only virtual paths. * * `info()` is advisory discovery, not an authorization token: handle failures * even when it advertised a matching permission. * * @example * ```ts * import { fs } from '@napplet/sdk'; * * const picked = await fs.pickFile({ accept: [{ extension: '.md' }] }); * const bytes = await fs.read(picked.entries[0].path); * await fs.write('/shared/copy.txt', bytes.data, { mode: 'replace' }); * const entries = await fs.list('/shared'); * const watchId = await fs.watch('/shared', { recursive: true }); * fs.onChanged((change) => refresh(change.path)); * ``` */ declare const fs: SdkDomain<'fs'>; /** * Runtime-mediated direct messages (NAP-DM): present DM UI while the runtime * owns signing, encryption, relay routing, storage, key/session state, and * policy. * * @example * ```ts * import { dm } from '@napplet/sdk'; * * const { conversations } = await dm.conversations({ limit: 20 }); * dm.onMessage((message) => render(message)); * ``` */ declare const dm: SdkDomain<'dm'>; export { ble, common, config, count, cvm, dm, fs, identity, ifc, inc, intent, keys, link, lists, media, notify, outbox, relay, resource, serial, storage, upload, webrtc };