import type { EventOperation } from "../factories/types.js";
import { EventTemplate, KnownEvent, KnownEventTemplate, KnownUnsignedEvent, NostrEvent, UnsignedEvent } from "../helpers/event.js";
/** An operation that removes the signature from the event template */
export declare function stripSignature(): EventOperation>;
/** An operation that removes the id and pubkey from the event template */
export declare function stripStamp(): EventOperation>;
/** An operation that updates the created_at timestamp */
export declare function updateCreatedAt(): EventOperation;
/** An operation that removes all symbols from the event */
export declare function stripSymbols(preserve?: symbol[]): EventOperation;
/** Ensures parameterized replaceable kinds have "d" tags */
export declare function includeReplaceableIdentifier(identifier?: string | (() => string)): EventOperation;
/** Includes a NIP-31 alt tag in an events public tags */
export declare function includeAltTag(description: string): EventOperation;
/** Sets the NIP-40 expiration timestamp for an event */
export declare function setExpirationTimestamp(timestamp: number): EventOperation;
/** Adds or removes the NIP-70 "-" tag from an event */
export declare function setProtected(set?: boolean): EventOperation;
/** Options for {@link setMetaTags} */
export type MetaTagOptions = {
/** Unix timestamp when the event expires */
expiration?: number;
/** Whether the event is protected (can only be published by author) */
protected?: boolean;
/** Alt description for clients that can't render the event */
alt?: string;
};
/** Creates the necessary operations for meta tag options */
export declare function setMetaTags(options?: MetaTagOptions): EventOperation;
/**
* An operation that adds the signers pubkey to the event
* @param signer - Optional EventSigner (throws if not provided)
* @throws {Error} if no signer is provided
*/
export declare function stamp(signer?: import("../factories/types.js").EventSigner): EventOperation, KnownUnsignedEvent>;
/**
* An operation that signs the event
* @param signer - Optional EventSigner (throws if not provided)
* @throws {Error} if no signer is provided
*/
export declare function sign = KnownEventTemplate>(signer?: import("../factories/types.js").EventSigner): EventOperation>;