import type { Filter } from "@nostr-fetch/kernel/nostr"; /** * Structure of Nostr event filter except `limit`, `since` and `until`. */ export type FetchFilter = Omit; export type FetchFilterKeyName = keyof Omit; export type FetchFilterKeyElem = Exclude[number]; /** * Pair of timestamps which specifies time range of events to fetch. */ export type FetchTimeRangeFilter = Pick; /** * Type of errors that can be thrown from `NostrFetcher` methods. */ export declare class NostrFetchError extends Error { } /** * Status of relays during a fetch. * * Legend: * * - `fetching`: the fetcher is actively fetching events from the relay * - `completed`: the fetcher have fetched enough events from the relay * - `aborted`: Fetching from the relay is aborted * - `failed`: An error occurred during fetching from the relay * - `connection-failed`: An error occurred during connecting to the relay */ export type RelayStatus = "fetching" | "completed" | "aborted" | "failed" | "connection-failed"; /** * Per-relay fetch statistics. */ export type RelayFetchStats = { /** Status of relays during a fetch. */ status: RelayStatus; /** Number of events fetched from the relay. */ numFetchedEvents: number; /** * "Frontier" of the event fetching. * In other words, `created_at` of the oldest events fetched from the relay. */ frontier: number; }; /** * Various statistics of the event fetching. */ export type FetchStats = { /** Elapsed time in millisecond */ elapsedTimeMs: number; /** Overall progress of the event fetching. */ progress: { max: number; current: number; }; /** Events and subscriptions counts. */ counts: { /** Number of events fetched from relays so far. */ fetchedEvents: number; /** Number of events buffered in the internal buffer. */ bufferedEvents: number; /** Number of subscriptions opened so far. */ openedSubs: number; /** Number of subscriptions that is running. */ runningSubs: number; }; /** Per-relay fetch statistics. */ relays: { [relayUrl: string]: RelayFetchStats; }; }; /** * Type of functions for listening fetch statistics. */ export type FetchStatsListener = (stats: FetchStats) => void; //# sourceMappingURL=types.d.ts.map