import { NostrEvent } from "nostr-tools";
import { AddressPointer, EventPointer } from "nostr-tools/nip19";
import { HiddenContentSigner } from "./index.js";
export declare const BookmarkPublicSymbol: unique symbol;
export declare const BookmarkHiddenSymbol: unique symbol;
/** Type for unlocked bookmarks events */
export type UnlockedBookmarks = {
    [BookmarkHiddenSymbol]: Bookmarks;
};
export type Bookmarks = {
    notes: EventPointer[];
    articles: AddressPointer[];
    hashtags: string[];
    urls: string[];
};
/** Parses an array of tags into a {@link Bookmarks} object */
export declare function parseBookmarkTags(tags: string[][]): Bookmarks;
/** Merges any number of {@link Bookmarks} objects */
export declare function mergeBookmarks(...bookmarks: (Bookmarks | undefined)[]): Bookmarks;
/** Returns all the bookmarks of the event */
export declare function getBookmarks(bookmark: NostrEvent): Bookmarks;
/** Returns the public bookmarks of the event */
export declare function getPublicBookmarks(bookmark: NostrEvent): Bookmarks;
/** Checks if the hidden bookmarks are unlocked */
export declare function isHiddenBookmarksUnlocked<T extends NostrEvent>(bookmark: T): bookmark is T & UnlockedBookmarks;
/** Returns the bookmarks of the event if its unlocked */
export declare function getHiddenBookmarks<T extends NostrEvent & UnlockedBookmarks>(bookmark: T): Bookmarks;
export declare function getHiddenBookmarks<T extends NostrEvent>(bookmark: T): Bookmarks | undefined;
/** Unlocks the hidden bookmarks on a bookmarks event */
export declare function unlockHiddenBookmarks(bookmark: NostrEvent, signer: HiddenContentSigner): Promise<Bookmarks>;
