Applesauce
    Preparing search index...

    Interface IEventStore<E>

    Generic sync event store interface

    interface IEventStore<E extends StoreEvent = NostrEvent> {
        eventLoader?: (
            pointer: AddressPointer | EventPointer | AddressPointerWithoutD,
        ) => Observable<E> | Promise<E | undefined>;
        getSyncPairs?: (filters: Filter | Filter[]) => SyncPair[];
        insert$: Observable<E>;
        remove$: Observable<E>;
        update$: Observable<E>;
        add(event: E): E | null;
        addressable(pointer: AddressPointer): Observable<E | undefined>;
        claim(event: E): void;
        clearClaim(event: E): void;
        contacts(user: string | ProfilePointer): Observable<ProfilePointer[]>;
        event(
            id: string | AddressPointer | EventPointer | AddressPointerWithoutD,
        ): Observable<E | undefined>;
        filters(filters: Filter | Filter[], onlyNew?: boolean): Observable<E>;
        getByFilters(filters: Filter | Filter[]): E[];
        getEvent(
            id: string | AddressPointer | EventPointer | AddressPointerWithoutD,
        ): E | undefined;
        getReplaceable(
            kind: number,
            pubkey: string,
            identifier?: string,
        ): E | undefined;
        getReplaceableHistory(
            kind: number,
            pubkey: string,
            identifier?: string,
        ): E[] | undefined;
        getTimeline(filters: Filter | Filter[]): E[];
        hasEvent(
            id: string | AddressPointer | EventPointer | AddressPointerWithoutD,
        ): boolean;
        hasReplaceable(kind: number, pubkey: string, identifier?: string): boolean;
        isClaimed(event: E): boolean;
        mailboxes(
            user: string | ProfilePointer,
        ): Observable<{ inboxes: string[]; outboxes: string[] } | undefined>;
        model<T extends unknown, Args extends any[]>(
            constructor: ModelConstructor<T, Args, E, IEventStore<E>>,
            ...args: Args,
        ): Observable<T>;
        profile(
            user: string | ProfilePointer,
        ): Observable<ProfileContent | undefined>;
        remove(event: string | E): boolean;
        removeClaim(event: E): void;
        replaceable(pointer: AddressPointerWithoutD): Observable<E | undefined>;
        replaceable(
            kind: number,
            pubkey: string,
            identifier?: string,
        ): Observable<E | undefined>;
        timeline(filters: Filter | Filter[], onlyNew?: boolean): Observable<E[]>;
        touch(event: E): void;
        unclaimed(): Generator<E>;
        update(event: E): void;
    }

    Type Parameters

    Hierarchy (View Summary)

    Implemented by

    Index
    eventLoader?: (
        pointer: AddressPointer | EventPointer | AddressPointerWithoutD,
    ) => Observable<E> | Promise<E | undefined>

    A method that will be called when an event isn't found in the store

    getSyncPairs?: (filters: Filter | Filter[]) => SyncPair[]

    Type Declaration

    insert$: Observable<E>

    A stream of new events added to the store

    remove$: Observable<E>

    A stream of events that have been removed

    update$: Observable<E>

    A stream of events that have been updated