import { EventModels, IEventStoreStreams, IEventSubscriptions } from "../event-store/index.js"; import { NostrEvent } from "../helpers/event.js"; import { EventCast } from "./event.js"; /** The type of event store that is passed to cast references */ export type CastRefEventStore = IEventSubscriptions & EventModels & IEventStoreStreams; /** A symbol used to store all the cast instances for a given event */ export declare const CAST_REF_SYMBOL: unique symbol; /** A symbol used to store all the casts for an event */ export declare const CASTS_SYMBOL: unique symbol; /** A class that can be used to cast a Nostr event */ export type CastConstructor> = new (event: NostrEvent, store: CastRefEventStore) => C; /** Cast a Nostr event to a specific class */ export declare function castEvent>(event: NostrEvent, cls: CastConstructor, store?: CastRefEventStore): C;