import { NostrEvent } from "nostr-tools";
import { AddressPointer, EventPointer, ProfilePointer } from "nostr-tools/nip19";
export declare const FAVORITE_RELAYS_KIND = 10012;
export type ReadListTags = "public" | "hidden" | "all";
/** Returns all the tags of a list or set */
export declare function getListTags(list: NostrEvent, type?: ReadListTags): string[][];
/**
 * Checks if an event pointer is anywhere in a list or set
 * NOTE: Ignores the `relay` field in EventPointer
 * @param list - The list or set to check
 * @param pointer - The event pointer to check
 * @param type - Which types of tags to check
 */
export declare function isEventPointerInList(list: NostrEvent, pointer: string | EventPointer, type?: ReadListTags): boolean;
/**
 * Checks if an address pointer is anywhere in a list or set
 * NOTE: Ignores the `relay` field in AddressPointer
 * @param list - The list or set to check
 * @param pointer - The address pointer to check
 * @param type - Which types of tags to check
 */
export declare function isAddressPointerInList(list: NostrEvent, pointer: string | AddressPointer, type?: ReadListTags): boolean;
/**
 * Checks if an profile pointer is anywhere in a list or set
 * NOTE: Ignores the `relay` field in ProfilePointer
 * @param list - The list or set to check
 * @param pointer - The profile pointer to check
 * @param type - Which types of tags to check
 */
export declare function isProfilePointerInList(list: NostrEvent, pointer: string | ProfilePointer, type?: ReadListTags): boolean;
/** Returns if an event is in a list */
export declare function isEventInList(list: NostrEvent, event: NostrEvent): boolean;
/**
 * Returns all the EventPointer in a list or set
 * @param list - The list or set to get the event pointers from
 * @param type - Which types of tags to read
 */
export declare function getEventPointersFromList(list: NostrEvent, type?: ReadListTags): EventPointer[];
/**
 * Returns all the AddressPointer in a list or set
 * @param list - The list or set to get the address pointers from
 * @param type - Which types of tags to read
 */
export declare function getAddressPointersFromList(list: NostrEvent, type?: ReadListTags): AddressPointer[];
/**
 * Returns all the ProfilePointer in a list or set
 * @param list - The list or set to get the profile pointers from
 * @param type - Which types of tags to read
 */
export declare function getProfilePointersFromList(list: NostrEvent, type?: ReadListTags): ProfilePointer[];
/**
 * Returns a deduplicated array of all 'relay' tags in a list or set
 * @param list - The list or set to get the relays from
 * @param type - Which types of tags to read
 */
export declare function getRelaysFromList(list: NostrEvent, type?: ReadListTags): string[];
/** Returns if an event is a valid list or set */
export declare function isValidList(event: NostrEvent): boolean;
