Files
snort/packages/system/dist/NostrSystem.d.ts
2023-06-08 12:45:23 +02:00

75 lines
2.5 KiB
TypeScript

import ExternalStore from "./ExternalStore";
import { NostrEvent, TaggedRawEvent } from "./Nostr";
import { AuthHandler, Connection, RelaySettings, ConnectionStateSnapshot } from "./Connection";
import { Query } from "./Query";
import { RelayCache } from "./GossipModel";
import { NoteStore } from "./NoteCollection";
import { BuiltRawReqFilter, RequestBuilder } from "./RequestBuilder";
import { SystemInterface, SystemSnapshot } from ".";
/**
* Manages nostr content retrieval system
*/
export declare class NostrSystem extends ExternalStore<SystemSnapshot> implements SystemInterface {
#private;
/**
* All active queries
*/
Queries: Map<string, Query>;
/**
* Handler function for NIP-42
*/
HandleAuth?: AuthHandler;
constructor(relayCache: RelayCache);
get Sockets(): ConnectionStateSnapshot[];
/**
* Connect to a NOSTR relay if not already connected
*/
ConnectToRelay(address: string, options: RelaySettings): Promise<void>;
OnRelayDisconnect(id: string): void;
OnEndOfStoredEvents(c: Readonly<Connection>, sub: string): void;
OnEvent(sub: string, ev: TaggedRawEvent): void;
/**
*
* @param address Relay address URL
*/
ConnectEphemeralRelay(address: string): Promise<Connection | undefined>;
/**
* Disconnect from a relay
*/
DisconnectRelay(address: string): void;
GetQuery(id: string): Query | undefined;
Query<T extends NoteStore>(type: {
new (): T;
}, req: RequestBuilder): Query;
SendQuery(q: Query, qSend: BuiltRawReqFilter): Promise<{
readonly id: string;
readonly start: number;
sent?: number | undefined;
eose?: number | undefined;
close?: number | undefined;
"__#9@#wasForceClosed": boolean;
readonly "__#9@#fnClose": (id: string) => void;
readonly "__#9@#fnProgress": () => void;
readonly relay: string;
readonly filters: import("./Nostr").ReqFilter[];
readonly connId: string;
sentToRelay(): void;
gotEose(): void;
forceEose(): void;
sendClose(): void;
readonly queued: number;
readonly runtime: number;
readonly responseTime: number;
readonly finished: boolean;
}[]>;
/**
* Send events to writable relays
*/
BroadcastEvent(ev: NostrEvent): void;
/**
* Write an event to a relay then disconnect
*/
WriteOnceToRelay(address: string, ev: NostrEvent): Promise<void>;
takeSnapshot(): SystemSnapshot;
}
//# sourceMappingURL=NostrSystem.d.ts.map