import { NostrEvent, VerifiedEvent } from "nostr-tools";
import { IEventStore } from "../event-store/interface.js";
export { NostrEvent, EventTemplate, UnsignedEvent, verifiedSymbol, verifyEvent, VerifiedEvent } from "nostr-tools/pure";
export { bytesToHex, hexToBytes, insertEventIntoAscendingList, insertEventIntoDescendingList, binarySearch, } from "nostr-tools/utils";
export * as kinds from "nostr-tools/kinds";
/** An event with a known kind. this is used to know if events have been validated */
export type KnownEvent<K extends number> = Omit<NostrEvent, "kind"> & {
    kind: K;
};
/** A symbol on an event that marks which event store its part of */
export declare const EventStoreSymbol: unique symbol;
export declare const EventUIDSymbol: unique symbol;
export declare const ReplaceableAddressSymbol: unique symbol;
export declare const FromCacheSymbol: unique symbol;
export declare const ReplaceableIdentifierSymbol: unique symbol;
/**
 * Checks if an object is a nostr event
 * NOTE: does not validate the signature on the event
 */
export declare function isEvent(event: any): event is NostrEvent;
/**
 * Returns if a kind is replaceable ( 10000 <= n < 20000 || n == 0 || n == 3 )
 * or parameterized replaceable ( 30000 <= n < 40000 )
 */
export declare function isReplaceable(kind: number): boolean;
/**
 * Returns the events Unique ID
 * For normal or ephemeral events this is ( event.id )
 * For replaceable events this is ( event.kind + ":" + event.pubkey + ":" )
 * For parametrized replaceable events this is ( event.kind + ":" + event.pubkey + ":" + event.tags.d )
 */
export declare function getEventUID(event: NostrEvent): string;
/** Returns the replaceable event address for an addressable event */
export declare function getReplaceableAddress(event: NostrEvent): string;
/** Creates a replaceable event address from a kind, pubkey, and identifier */
export declare function createReplaceableAddress(kind: number, pubkey: string, identifier?: string): string;
/** @deprecated use createReplaceableAddress instead */
export declare const getReplaceableUID: typeof createReplaceableAddress;
/** Sets events verified flag without checking anything */
export declare function fakeVerifyEvent(event: NostrEvent): event is VerifiedEvent;
/** Marks an event as being from a cache */
export declare function markFromCache(event: NostrEvent): void;
/** Returns if an event was from a cache */
export declare function isFromCache(event: NostrEvent): boolean;
/** Returns the EventStore of an event if its been added to one */
export declare function getParentEventStore<T extends object>(event: T): IEventStore | undefined;
/** Notifies the events parent store that an event has been updated */
export declare function notifyEventUpdate(event: any): void;
/** Returns the replaceable identifier for a replaceable event */
export declare function getReplaceableIdentifier(event: NostrEvent): string;
/** Checks if an event is a NIP-70 protected event */
export declare function isProtectedEvent(event: NostrEvent): boolean;
