import { NostrEvent } from "nostr-tools";
import { ExternalPointer, ExternalIdentifiers } from "./external-id.js";
export declare const COMMENT_KIND = 1111;
export type CommentEventPointer = {
    type: "event";
    id: string;
    kind: number;
    pubkey?: string;
    relay?: string;
};
export type CommentAddressPointer = {
    type: "address";
    id?: string;
    kind: number;
    pubkey: string;
    identifier: string;
    relay?: string;
};
export type CommentExternalPointer<T extends keyof ExternalIdentifiers> = ExternalPointer<T> & {
    type: "external";
};
export type CommentPointer = CommentEventPointer | CommentAddressPointer | CommentExternalPointer<keyof ExternalIdentifiers>;
export declare const CommentRootPointerSymbol: unique symbol;
export declare const CommentReplyPointerSymbol: unique symbol;
/**
 * Gets the EventPointer from an array of tags
 * @throws
 */
export declare function getCommentEventPointer(tags: string[][], root?: boolean): CommentEventPointer | null;
/**
 * Gets the AddressPointer from an array of tags
 * @throws
 */
export declare function getCommentAddressPointer(tags: string[][], root?: boolean): CommentAddressPointer | null;
/**
 * Gets the ExternalPointer from an array of tags
 * @throws
 */
export declare function getCommentExternalPointer(tags: string[][], root?: boolean): CommentExternalPointer<keyof ExternalIdentifiers> | null;
/**
 * Returns the root pointer for a comment
 * @throws
 */
export declare function getCommentRootPointer(comment: NostrEvent): CommentPointer | null;
/**
 * Returns the reply pointer for a comment
 * @throws
 */
export declare function getCommentReplyPointer(comment: NostrEvent): CommentPointer | null;
export declare function isCommentEventPointer(pointer: any): pointer is CommentEventPointer;
export declare function isCommentAddressPointer(pointer: any): pointer is CommentAddressPointer;
