import { AddressPointer, EventPointer, ProfilePointer } from "nostr-tools/nip19";
import { TagOperation } from "../../types.js";
/** Adds a single "p" tag for a ProfilePointer */
export declare function addPubkeyTag(pubkey: string | ProfilePointer, replace?: boolean): TagOperation;
/** Removes all "p" tags matching a pubkey */
export declare function removePubkeyTag(pubkey: string | ProfilePointer): TagOperation;
/** Adds a a single "e" tag for an EventPointer */
export declare function addEventTag(id: string | EventPointer, replace?: boolean): TagOperation;
/** Removes all "e" tags matching EventPointer or id */
export declare function removeEventTag(id: string | EventPointer): TagOperation;
/** Adds a single "a" tag based on an AddressPointer */
export declare function addAddressTag(cord: string | AddressPointer, replace?: boolean): TagOperation;
/** @deprecated use addAddressTag instead */
export declare const addCoordinateTag: typeof addAddressTag;
/** Removes all "a" tags for address pointer */
export declare function removeAddressTag(cord: string | AddressPointer): TagOperation;
/** @deprecated use removeAddressTag instead */
export declare const removeCoordinateTag: typeof removeAddressTag;
/** Adds a name / value tag */
export declare function addNameValueTag(tag: [string, string, ...string[]], replace?: boolean, matcher?: (a: string, b: string) => boolean): TagOperation;
/** Removes all matching name / value tag */
export declare function removeNameValueTag(tag: string[]): TagOperation;
/** Sets a singleton tag */
export declare function setSingletonTag(tag: [string, ...string[]], replace?: boolean): TagOperation;
/** Removes all instances of a singleton tag */
export declare function removeSingletonTag(tag: string): TagOperation;
