import { Filter, NostrEvent } from "nostr-tools";
import { AddressPointer, EventPointer } from "nostr-tools/nip19";
import { Model } from "../event-store/interface.js";
import { AddressPointerWithoutD } from "../helpers/index.js";
/** A model that returns a single event or undefined when its removed */
export declare function EventModel(pointer: string | EventPointer): Model<NostrEvent | undefined>;
/** A model that returns the latest version of a replaceable event or undefined if its removed */
export declare function ReplaceableModel(pointer: AddressPointer | AddressPointerWithoutD): Model<NostrEvent | undefined>;
/** A model that returns an array of sorted events matching the filters */
export declare function TimelineModel(filters: Filter | Filter[], includeOldVersion?: boolean): Model<NostrEvent[]>;
/**
 * A model that returns a multiple events in a map
 * @deprecated use multiple {@link EventModel} instead
 */
export declare function EventsModel(ids: string[]): Model<Record<string, NostrEvent | undefined>>;
/**
 * A model that returns a directory of events by their UID
 * @deprecated use multiple {@link ReplaceableModel} instead
 */
export declare function ReplaceableSetModel(pointers: (AddressPointer | AddressPointerWithoutD)[]): Model<Record<string, NostrEvent | undefined>>;
