import { NappletMessage, CountResult, CountFilter, CountOptions } from '@napplet/core'; export { CountFilter, CountOptions, CountResult } from '@napplet/core'; /** * Napplet NAP count types entrypoint. * * @module */ /** * @napplet/nap/count -- Runtime-mediated event count message types. * * NAP-COUNT lets a napplet ask the runtime to count events matching non-empty * NIP-01 filter arrays without returning matching event payloads. The runtime * owns relay COUNT support, index/cache use, aggregation, approximation, and * refusal policy. */ /** The NAP domain name for runtime-mediated event counts. */ declare const DOMAIN: "count"; /** Base interface for all count NAP messages. */ interface CountMessage extends NappletMessage { /** Message type in "count." format. */ type: `count.${string}`; } /** Request an aggregate count for one or more NIP-01 filters. */ interface CountQueryMessage extends CountMessage { type: 'count.query'; /** Correlation ID for this request. */ id: string; /** Non-empty NIP-01 filter array. Multiple filters use NIP-45 OR semantics. */ filters: CountFilter[]; /** Runtime-owned approximation/HLL hints. */ options?: CountOptions; } /** Result of a `count.query` request. */ interface CountQueryResultMessage extends CountMessage, CountResult { type: 'count.query.result'; /** Correlation ID matching the original request. */ id: string; } /** Napplet -> Shell count messages. */ type CountOutboundMessage = CountQueryMessage; /** Shell -> Napplet count messages. */ type CountInboundMessage = CountQueryResultMessage; /** All count NAP message types. */ type CountNapMessage = CountOutboundMessage | CountInboundMessage; export { type CountInboundMessage, type CountMessage, type CountNapMessage, type CountOutboundMessage, type CountQueryMessage, type CountQueryResultMessage, DOMAIN };