import { NostrEvent } from "nostr-tools";
import { ProfilePointer } from "nostr-tools/nip19";
import { HiddenContentSigner } from "./hidden-content.js";
export declare const ContactsRelaysSymbol: unique symbol;
export declare const PublicContactsSymbol: unique symbol;
export declare const HiddenContactsSymbol: unique symbol;
/** Type for contact events with unlocked hidden tags */
export type UnlockedContacts = {
    [HiddenContactsSymbol]: ProfilePointer[];
};
export declare function getRelaysFromContactsEvent(event: NostrEvent): Map<string, "inbox" | "outbox" | "all"> | null;
/** Merges any number of contact lists into a single list */
export declare function mergeContacts(...pointers: (ProfilePointer | undefined | (ProfilePointer | undefined)[])[]): ProfilePointer[];
/** Returns all public and hidden contacts from a contacts list event */
export declare function getContacts(event: NostrEvent): ProfilePointer[];
/** Returns only the public contacts from a contacts list event */
export declare function getPublicContacts(event: NostrEvent): ProfilePointer[];
/** Checks if the hidden contacts are unlocked */
export declare function isHiddenContactsUnlocked<T extends NostrEvent>(event: T): event is T & UnlockedContacts;
/** Returns only the hidden contacts from a contacts list event */
export declare function getHiddenContacts(event: NostrEvent): ProfilePointer[] | undefined;
/** Unlocks the hidden contacts */
export declare function unlockHiddenContacts(event: NostrEvent, signer: HiddenContentSigner): Promise<ProfilePointer[]>;
