declare const _default: "# SHIP Lookup Service\n\n**Protocol Name**: SHIP (Service Host Interconnect Protocol) \n**Lookup Service Name**: `SHIPLookupService` \n\n---\n\n## Overview\n\nThe SHIP Lookup Service is used to **query** the known SHIP tokens in your overlay database. It allows you to discover nodes that have published SHIP outputs, indicating they host or participate in certain topics (prefixed `tm_`).\n\nThis lookup service is typically invoked by sending a [LookupQuestion](https://www.npmjs.com/package/@bsv/overlay#lookupservice) with:\n- `question.service = 'ls_ship'`\n- `question.query` containing parameters for searching.\n\n---\n\n## Purpose\n\n- **Discovery**: Find all hosts that declared themselves via SHIP tokens.\n- **Filtering**: Narrow results by domain, by topic, or both.\n\n---\n\n## Querying the SHIP Lookup Service\n\nWhen you call `lookup(question)` on the SHIP Lookup Service, you must include:\n\n1. **`question.service`** set to `\"ls_ship\"`.\n2. **`question.query`**: Can be one of the following:\n - `\"findAll\"` (string literal): Returns **all** known SHIP records.\n - An object of type:\n ```ts\n interface SHIPQuery {\n domain?: string\n topics?: string[]\n }\n ```\n where:\n - `domain` is an optional string. If provided, results will match that domain/advertisedURI.\n - `topics` is an optional string array. If provided, results will match any of those `tm_` topics.\n\n### Examples\n\n1. **Find all SHIP records**:\n ```js\n const question = {\n service: 'ls_ship',\n query: 'findAll'\n }\n const results = await overlayClient.lookup(question)\n ```\n\n2. **Find by domain**:\n ```js\n const question = {\n service: 'ls_ship',\n query: { domain: 'https://myexample.com' }\n }\n const results = await overlayClient.lookup(question)\n ```\n\n3. **Find by topics**:\n ```js\n const question = {\n service: 'ls_ship',\n query: { topics: ['tm_bridge', 'tm_sync'] }\n }\n const results = await overlayClient.lookup(question)\n ```\n\n4. **Find by domain AND topics**:\n ```js\n const question = {\n service: 'ls_ship',\n query: {\n domain: 'https://myexample.com',\n topics: ['tm_bridge']\n }\n }\n const results = await overlayClient.lookup(question)\n ```\n\n---\n\n## Gotchas and Tips\n\n- **Topic Prefix**: The SHIP manager expects topics to start with `tm_`. If you see no results, ensure you used the correct prefix.\n- **Strict Matching**: Domain matching requires an exact string match. If you have a different protocol (https vs https+bsvauth vs https+bsvauth+smf), be sure to store/lookup accordingly.\n- **Partial Queries**: If you only provide `topics`, domain-based filtering is not applied, and vice versa.\n- **Multiple Topics**: Since `topics` is an array, the storage will return all records matching **any** listed topic.\n\n---\n\n## Further Reading\n\n- **SHIPTopicManager**: For how the outputs are admitted.\n- **BRC-101 Overlays**: The general pattern for these sorts of services.\n- **SLAP**: The complementary protocol for service lookup availability ads.\n"; export default _default; //# sourceMappingURL=SHIPLookup.docs.d.ts.map